GNU/Linux >> Belajar Linux >  >> Linux

Segala sesuatu tentang Daemon di Linux

Karena sistem operasi Linux dicirikan sebagai sistem operasi multitasking, daemon, menurut definisi, adalah program yang terus-menerus dijalankan sebagai proses latar belakang. Singkatnya, pelaksanaan proses ini tidak tergantung pada interaksi sistem pengguna aktif. Pengguna sistem normal tidak dapat mengontrol eksekusi periodik dari proses daemon.

Konvensi penamaan yang mendefinisikan sebagian besar proses daemon adalah 'akhiran' satu huruf d. Konvensi penamaan ini memungkinkan untuk membedakan antara proses sistem normal dan proses bertenaga daemon. Misalnya, sshd adalah proses daemon yang bertanggung jawab atas pengelolaan . yang masuk SSH koneksi. Contoh proses daemon lainnya adalah syslogd . Ia bertanggung jawab atas fasilitas pencatatan sistem Linux.

Di lingkungan Linux, peluncuran daemon dilakukan pada saat boot. Karena sistem Linux adalah klon Unix yang sempurna, proses init memenuhi syarat sebagai proses induk ke daemon. Untuk memulai dan menghentikan daemon pada sistem operasi Linux, Anda harus mengakses . terlebih dahulu /etc/init.d direktori skrip di OS Anda.

Fungsi umum daemon

  • Ini memungkinkan sistem Anda untuk merespons permintaan jaringan dengan benar dengan mengaitkan setiap permintaan dengan port jaringan yang kompatibel. Port jaringan tipikal yang ditangani oleh daemon adalah port 80.
  • Daemon memungkinkan untuk menjalankan atau menjalankan tugas sistem terjadwal. Daemon yang bertanggung jawab untuk tugas khusus ini disebut cron . Ini akan membuat tugas cron yang akan menangani pelaksanaan tugas terjadwal Anda secara berkala.
  • Daemon juga menawarkan kontribusi tak ternilai dalam memantau kinerja sistem Anda. Misalnya, mereka dapat memeriksa larik RAID atau kesehatan hard disk.

Daemon layanan Linux yang berguna

  • dan :Auto Mount Daemon
  • anakron: Eksekusi waktu boot dari tugas cron yang tertunda
  • apmd: Daemon Manajemen Daya Tingkat Lanjut
  • atd: Menggunakan fungsionalitas alat untuk menjalankan tugas yang diantrekan
  • otomatis: bekerja sama dengan daemon automounter untuk memfasilitasi pemasangan dan pelepasan perangkat sistem sesuai permintaan
  • crond: daemon yang menangani penjadwalan tugas
  • cupsd: daemon yang menangani pencetakan CUPS
  • DHCP: daemon untuk Server protokol Bootstrap Internet dan Protokol Konfigurasi Host Dinamis.
  • berpagar: daemon perutean yang bertanggung jawab atas beberapa protokol perutean. Ini menggantikan routed dan egpup
  • httpd: daemon yang berhubungan dengan server web seperti Apache
  • inetd: daemon yang terkait dengan Internet Superserver
  • imapd :daemon untuk server IMAP
  • lpd: Daemon Pencetak Baris
  • memcache: daemon caching objek yang didistribusikan dalam memori
  • dipasang: pasang daemon
  • MySQL: daemon untuk server database MySQL
  • bernama: daemon untuk server DNS
  • nfsd: Daemon Berbagi File Jaringan
  • nfslock: Karena nfsd dikaitkan dengan layanan penguncian file, daemon ini dapat memulai dan menghentikan layanan ini.
  • nmbd: daemon untuk Blok Pesan Jaringan
  • ntpd: daemon untuk layanan Protokol Waktu Jaringan
  • postfix: daemon yang berfungsi sebagai agen transportasi surat. Ini adalah alternatif untuk sendmail.
  • Postgresql: daemon untuk server database Postgres
  • dirutekan: daemon untuk mengelola tabel perutean
  • rpcbind: daemon yang terkait dengan Remote Procedure Call Bind
  • kirim email: daemon yang berfungsi sebagai agen transfer surat
  • smbd: daemon untuk server Samba SMB
  • smtpd: daemon untuk Protokol Transfer Surat Sederhana
  • snmpd: daemon untuk Protokol Manajemen Jaringan Sederhana
  • cumi-cumi: daemon yang terkait dengan server proxy untuk cache halaman web
  • sshd: daemon yang terkait dengan Server Shell Aman
  • disinkronkan: daemon untuk menyinkronkan memori sistem dengan file sistem
  • Syslog: daemon yang melakukan pencatatan sistem
  • tcpd: pembungkus layanan daemon ini mengeksekusi protokol pembatasan akses yang terkait dengan layanan daemon berbasis inetd. Ini menerapkan pembatasan ini melalui hosts.allow dan hosts.deny .
  • Telnetd: daemon untuk server telnet
  • vsftpd: daemon untuk Protokol Transfer File yang sangat aman
  • webmin: daemon untuk server administrasi berbasis web
  • xinetd: daemon yang terkait dengan Enhanced Internet Supervisor
  • xntd :daemon untuk Server Waktu Jaringan

Baik Anda pengguna pemula, menengah, atau ahli di dunia sistem operasi Linux, Anda tidak akan pernah gagal untuk membiasakan diri dengan salah satu daemon yang tercantum di atas saat Anda meningkatkan keterampilan dan keahlian Anda dalam lingkungan OS ini.

Memulai/menghentikan/memulai ulang daemon:pendekatan berbasis terminal

Sekarang setelah Anda memiliki daftar daemon Linux yang berguna untuk dihafal dan dijelajahi, hal pertama yang perlu Anda ketahui adalah cara memulai, menghentikan, atau memulai ulang daemon ini. Dengan Terminal Linux Anda diluncurkan, pertimbangkan aturan sintaks berikut untuk memulai, menghentikan, dan memulai ulang daemon di Sistem Operasi Linux Anda.

service preferred-daemon-name start

service preferred-daemon-name stop 

service preferred-daemon-name restart

Ganti nama-daemon pilihan argumen sintaks dengan nama daemon sistem Linux pilihan Anda. Anda dapat memilih satu dari daftar daemon yang disorot di atas selama itu aktif atau sudah ditentukan di sistem Linux Anda. Sebagai contoh, kita dapat menerapkan penggunaan praktis dari sintaks di atas dengan mencoba memulai, menghentikan, dan memulai ulang daemon. Navigasikan ke /etc/init.d direktori di terminal Anda untuk daftar daemon yang tersedia di sistem Linux Anda.

Mencantumkan daemon sistem Linux Anda

Cara yang lebih efektif untuk mencatat daemon yang tersedia di sistem Linux Anda daripada menavigasi ke /etc/init.d direktori adalah untuk membuat daftar semua daemon aktif dan tidak aktif yang ditentukan dari direktori itu dengan satu perintah. Perintah berikut efektif untuk mencapai tujuan ini.

$ service –status-all

Tanda kurung kurawal positif [+] dan negatif [-] sebelum nama daemon yang terdaftar menyiratkan bahwa keduanya aktif atau tidak aktif.

Bekerja dengan daemon yang ditentukan pengguna

Aturan atau protokol khusus harus diikuti untuk membuat dan mengimplementasikan daemon yang ditentukan pengguna dengan sukses. Protokol-protokol ini membantu Anda untuk memahami eksekusi daemon di lingkungan Linux apa pun sepenuhnya. Daemon juga cukup fleksibel untuk berinteraksi dengan modul kernel melalui panggilan sistem. Peregangan fungsi daemon ini mendukung interaksinya dengan perangkat keras seperti PDA (Personal Digital Assistants), printer, dan papan pengontrol eksternal yang layak. Blok pembangun daemon juga berkontribusi pada kekuatan karakteristik dan fleksibilitas sistem operasi Linux.

Implementasi daemon yang relatable menggunakan Python didemonstrasikan dan didokumentasikan dengan hati-hati oleh Sander Marechal. Berhati-hatilah untuk mengikuti urutan eksekusi dalam membuat daemon ini. Pertama, sistem Linux Anda memerlukan instalasi paket Python untuk mengembangkan daemon dengan sukses. Untuk menginstal Python, Anda dapat menggunakan perintah berikut.

$ sudo apt install python3-pip python3-dev

Tautan ke kode daemon authoredPython Sander Marechal juga menawarkan versi kode Python 3 yang disempurnakan. Akan membantu jika Anda mempertimbangkan untuk mengimplementasikannya untuk lebih memahami cara kerja daemon.

Jika Anda tidak yakin apakah Anda telah menginstal Python, jalankan perintah berikut di terminal Linux Anda.

$ python3 --version

Tujuan daemon apa pun

Karena satu daemon didedikasikan untuk menangani tugas tertentu, ia harus menjalankannya dengan sempurna. Tugas yang dimaksud dapat sesederhana membuat laporan dan mengirimkannya ke admin melalui sendmail atau serumit mengelola beberapa domain yang ditautkan ke beberapa kotak surat. Pada titik tertentu, daemon yang akan Anda buat harus berbicara dengan daemon lain yang sudah ada.

interaksi pengguna-ke-daemon

Tidak disarankan agar pengguna sistem dan daemon yang dibuat berkomunikasi secara langsung. Jika perlu untuk daemon, Anda membuat untuk berkomunikasi dengan pengguna sistem. Komunikasi ini dapat difasilitasi melalui sesuatu seperti antarmuka GUI. Platform komunikasi ini dapat memiliki kompleksitas GTK+ GUI atau kesederhanaan set sinyal.

Membuat daemon Anda

Banyak pendekatan mendukung pembuatan daemon. Misalnya, Anda dapat menggunakan antarmuka baris perintah untuk melakukan daemonisasi skrip Python sebagai berikut:

$ python my_python_script.py &

Anda dapat menyimpan kode daemon Python3 yang ditulis Sander Marechal pada file Python dan melakukan daemonisasi dengan perintah di atas. Meskipun perintah terminal di atas akan dengan mudah membuat daemon untuk Anda, Anda harus menghadapi tantangan seperti keluaran terminal yang tidak dapat diprediksi. Tantangan ini bergantung pada seberapa baik Anda memfaktorkan ulang kode daemon Python Anda. Selain itu, pendekatan di atas tidak mendukung penetapan file kunci PID ke daemon tertentu. Itu membuat tidak mungkin untuk mengontrol daemon apa pun karena kebanyakan dari mereka akan dieksekusi secara instan. Di sisi lain, jika Anda hanya membutuhkan daemon sederhana, pendekatan yang disebutkan di atas akan memberi Anda hasil daemon yang diinginkan.

Struktur dasar daemon

Sebelum daemon mengeksekusi atau melakukan fungsi yang diinginkan, ia harus mempertimbangkan beberapa aturan yang telah terbentuk sebelumnya yang mengarah ke eksekusinya. Anda dapat menganggap aturan ini sebagai pekerjaan rumah tingkat rendah yang mengarah ke tugas sebenarnya. Aturan-aturan ini dapat dipecah menjadi langkah-langkah berikut.

  • Pembuatan garpu dari proses induk dilakukan terlebih dahulu
  • Mengubah umask (masker mode file) mengikuti
  • Log dibuka untuk menulis
  • SID (Session ID) unik telah dibuat
  • Eksekusi beralih dari direktori kerja saat ini ke lokasi sekunder untuk menjaga integritas file
  • Descriptor file standar ditutup
  • Eksekusi kode daemon yang ditargetkan

Lebih lanjut tentang implementasi contoh daemon dapat ditemukan di GitHub.


Linux
  1. Persyaratan Sistem Kali Linux

  2. Pelajari lebih lanjut tentang sistem Linux Anda dengan inxi

  3. Linux – Semuanya Adalah File?

  1. Perintah Shutdown Linux

  2. Perintah Fsck di Linux

  3. Perintah lsusb Linux - Cetak Informasi tentang USB di Sistem

  1. Apakah Linux Sistem Operasi atau Kernel?

  2. Mendokumentasikan uptime sistem di Linux

  3. Semua yang Perlu Anda Ketahui Tentang Sistem File Linux