Oleh kerana sistem operasi Linux dicirikan sebagai sistem operasi multitasking, daemon adalah, secara definisi, program yang terus dijalankan sebagai proses latar belakang. Pendek kata, pelaksanaan proses ini tidak bergantung pada interaksi sistem pengguna aktif. Pengguna sistem biasa tidak dapat mengawal pelaksanaan proses daemon secara berkala.
Konvensyen penamaan yang menentukan kebanyakan proses daemon adalah satu huruf 'akhiran' d. Konvensyen penamaan ini memungkinkan untuk membezakan antara proses sistem biasa dan proses yang dikuasakan oleh daemon. Sebagai contoh, sshd adalah proses daemon yang bertanggungjawab untuk pengurusan kemasukanSSH sambungan. Contoh proses daemon lain adalahsyslogd. Ia bertanggungjawab untuk kemudahan log sistem Linux.
Dalam persekitaran Linux, pelancaran daemon adalah pada masa boot. Oleh kerana sistem Linux adalah klon Unix yang sempurna, proses init memenuhi syarat sebagai proses induk kepada daemon. Untuk memulakan dan menghentikan daemon pada sistem operasi Linux anda, pertama anda perlu mengakses/ etc / init.d direktori skrip pada OS anda.
Fungsi daemon biasa
- Ini membolehkan sistem anda merespon permintaan rangkaian dengan betul dengan mengaitkan setiap permintaan dengan port rangkaian yang serasi. Port rangkaian khas yang dikendalikan oleh daemon adalah port 80.
- Daemon memungkinkan untuk menjalankan atau melaksanakan tugas sistem yang dijadualkan. Daemon yang bertanggungjawab untuk tugas khusus ini dipanggil cron. Ia akan mewujudkan a kerja cron yang akan menangani pelaksanaan tugas berjadual anda secara berkala.
- Daemons juga memberikan sumbangan yang tidak ternilai dalam memantau prestasi sistem anda. Sebagai contoh, mereka dapat memeriksa susunan RAID atau kesihatan cakera keras.
Daemon perkhidmatan Linux yang berguna
- amd: Auto Mount Daemon
- anakron: Boot masa pelaksanaan tugas cron yang tertangguh
- apmd: Daemon Pengurusan Kuasa Lanjutan
- atd: Kegunaan pada fungsi alat untuk melaksanakan tugas beratur
- autofes: bekerjasama dengan daemon automatik untuk memudahkan pemasangan dan pemasangan peranti sistem atas permintaan
- crond: daemon yang mengendalikan penjadualan tugas
- cupsd: daemon yang mengendalikan percetakan CUPS
- DHCP: daemon untuk kedua-dua pelayan protokol Bootstrap Internet dan Protokol Konfigurasi Host Dinamik.
- berpagar: routing daemon yang bertanggungjawab untuk pelbagai protokol routing. Ia menggantikan routed dan egpup
- httpd: daemon yang berurusan dengan pelayan web seperti Apache
- inetd: daemon yang berkaitan dengan Internet Superserver
- imapd: daemon untuk pelayan IMAP
- lpd: Line Printer Daemon
- memcached: objek caching daemon yang diedarkan dalam memori
- mountd: pasang daemon
- MySQL: daemon untuk pelayan pangkalan data MySQL
- dinamakan: daemon untuk pelayan DNS
- nfsd: Daemon Berkongsi Fail Rangkaian
- nfslock: Oleh kerana nfsd dikaitkan dengan perkhidmatan mengunci fail, daemon ini dapat memulakan dan menghentikan perkhidmatan ini.
- nmbd: daemon untuk Blok Mesej Rangkaian
- ntpd: daemon untuk perkhidmatan Network Time Protocol
- postfix: daemon yang berfungsi sebagai ejen pengangkutan mel. Ini adalah alternatif untuk menghantar e-mel.
- Postgresql: daemon untuk pelayan pangkalan data Postgres
- dihala: daemon untuk menguruskan jadual penghalaan
- rpcbind: daemon yang berkaitan dengan Call Prosedur Jauh
- hantar surat: daemon yang berfungsi sebagai ejen pemindahan surat
- smbd: daemon untuk pelayan SMA Samba
- smtpd: daemon untuk Protokol Pemindahan Surat Mudah
- snmpd: daemon untuk Protokol Pengurusan Rangkaian Mudah
- sotong: daemon yang dikaitkan dengan pelayan proksi untuk cache halaman web
- sshd: daemon yang berkaitan dengan Secure Shell Server
- penyegerakan: daemon untuk menyegerakkan memori sistem dengan fail sistem
- Syslog: daemon yang melakukan pembalakan sistem
- tcpd: pembungkus perkhidmatan daemon ini melaksanakan protokol sekatan akses yang berkaitan dengan perkhidmatan daemon berasaskan inetd. Ia melaksanakan sekatan ini melalui tuan rumah.benarkan dan tuan rumah.menafikan.
- Telnetd: daemon untuk pelayan telnet
- vsftpd: daemon untuk Protokol Pemindahan Fail yang sangat selamat
- webmin: daemon untuk pelayan pentadbiran berasaskan web
- xinetd: daemon yang berkaitan dengan Penyelia Internet yang Dipertingkatkan
- xntd: daemon untuk Pelayan Masa Rangkaian
Sama ada anda pengguna pemula, perantaraan, atau pakar dalam dunia sistem operasi Linux, anda tidak akan pernah gagal untuk membiasakan diri dengan salah satu daemon yang disenaraikan di atas semasa anda memajukan kemahiran dan kepakaran anda dalam persekitaran OS ini.
Memulakan / menghentikan / memulakan semula daemon: pendekatan berasaskan terminal
Setelah anda mempunyai senarai daemon Linux yang berguna untuk dihafal dan dijelajahi, perkara pertama yang perlu anda ketahui ialah bagaimana memulakan, menghentikan, atau memulakan semula daemon ini. Dengan Terminal Linux anda dilancarkan, pertimbangkan peraturan sintaks berikut untuk memulakan, menghentikan, dan memulakan semula daemon pada Sistem Operasi Linux anda.
perkhidmatan pilihan-daemon-name mula perkhidmatan pilihan-berhenti-daemon-name perkhidmatan pilihan-mulakan semula nama-daemon
Gantikan nama-daemon pilihan argumen sintaks dengan nama daemon sistem Linux pilihan anda. Anda boleh memilih dari senarai daemon yang disorot di atas selagi ia aktif atau sudah ditentukan pada sistem Linux anda. Sebagai contoh, kita dapat melaksanakan penggunaan praktikal sintaks di atas dengan mencuba untuk memulakan, menghentikan, dan memulakan semula adaemon. Navigasi ke / etc / init.d direktori di terminal anda untuk senarai daemon yang tersedia di sistem Linux anda.
Menyenaraikan daemon sistem Linux anda
Cara yang lebih berkesan untuk memperhatikan daemon yang tersedia di sistem Linux anda dan bukannya menavigasi ke / etc / init.d direktori adalah untuk menyenaraikan semua daemon aktif dan tidak aktif yang ditentukan dari direktori itu dengan satu perintah. Perintah berikut berkesan dalam mencapai objektif ini.
$ perkhidmatan -status-semua
Tanda tanda positif [+] dan negatif [-] sebelum nama daemon yang disenaraikan menunjukkan bahawa mereka aktif atau tidak aktif, masing-masing.
Bekerja dengan daemon yang ditentukan pengguna
Peraturan atau protokol khusus mesti diikuti untuk membuat dan melaksanakan daemon yang ditentukan pengguna dengan jayanya. Protokol-protokol ini membantu anda memahami pelaksanaan daemon di mana-mana persekitaran Linux. Daemon juga cukup fleksibel untuk berinteraksi dengan modul kernel melalui panggilan sistem. Peluang fungsi daemon ini menyokong interaksinya dengan peranti perkakasan seperti PDA (Pembantu Digital Peribadi), pencetak, dan papan pengawal luaran yang layak. Blok bangunan daemon juga menyumbang kepada kekuatan dan fleksibiliti sistem operasi Linux.
Pelaksanaan daemon yang relevan menggunakan Python ditunjukkan dengan teliti dan didokumentasikan oleh Sander Marechal. Berminat untuk mengikuti perintah pelaksanaan dalam membuat daemon ini. Pertama, sistem Linux anda memerlukan pemasangan pakej Python untuk berjaya mengembangkan daemon. Untuk memasang Python, anda boleh menggunakan arahan berikut.
$ sudo apt pasang python3-pip python3-dev
Pautan ke kod daemon Python yang dikarang oleh Sander Marechal juga menawarkan versi kod Python 3 yang disempurnakan. Akan lebih baik jika anda mempertimbangkan untuk melaksanakannya untuk memahami dengan lebih baik bagaimana daemon berfungsi.
Sekiranya anda tidak pasti sama ada anda memasang Python, jalankan arahan berikut di terminal Linux anda.
$ python3 --versi
Tujuan mana-mana daemon
Oleh kerana satu daemon didedikasikan untuk menangani tugas tertentu, ia harus melaksanakannya dengan sempurna. Tugas yang dimaksud bisa semudah membuat laporan dan mengirimkannya ke admin melalui sendmail atau sama rumitnya dengan menguruskan beberapa domain yang dihubungkan ke beberapa kotak surat. Pada suatu ketika, daemon yang akan anda buat harus bercakap dengan daemon lain yang ada.
interaksi pengguna-ke-daemon
Tidak digalakkan pengguna sistem dan daemon yang dibuat berkomunikasi secara langsung. Sekiranya diperlukan untuk daemon, anda membuat untuk berkomunikasi dengan pengguna sistem. Komunikasi ini dapat difasilitasi melalui sesuatu seperti antara muka GUI. Platform komunikasi ini boleh mempunyai kerumitan GTK + GUI atau kesederhanaan set isyarat.
Membuat daemon anda
Banyak pendekatan menyokong penciptaan daemon. Sebagai contoh, anda boleh menggunakan antara muka baris perintah anda untuk menghancurkan skrip Python seperti berikut:
$ python my_python_script.py &
Anda boleh menyimpan kod daemon Python3 yang ditulis oleh Sander Marechal pada fail Python dan memonimalkannya dengan arahan di atas. Walaupun arahan terminal di atas akan dengan mudah membuat daemon untuk anda, anda harus menghadapi cabaran seperti output terminal yang tidak dapat diramalkan. Cabaran ini bergantung pada seberapa baik anda mengubah kod daemon Python anda. Juga, pendekatan di atas tidak menyokong pemberian fail kunci PID kepada daemon tertentu. Ini menjadikan mustahil untuk mengawal daemon kerana kebanyakan mereka akan melaksanakan sekelip mata. Sebaliknya, jika anda hanya memerlukan daemon sederhana, pendekatan yang disebutkan di atas akan memberi anda hasil daemon yang diinginkan.
Struktur asas Daemon
Sebelum daemon menjalankan atau menjalankan fungsi yang dimaksudkan, ia harus mempertimbangkan beberapa peraturan yang telah dibuat sebelumnya yang mengarah ke pelaksanaannya. Anda boleh menganggap peraturan ini sebagai kerja rumah tahap rendah yang membawa kepada tugasnya yang sebenarnya. Peraturan ini dapat dipecahkan kepada langkah-langkah berikut.
- Membuat garpu dari proses ibu bapa berlaku terlebih dahulu
- Mengubah umask (topeng mod fail) berikut
- Log dibuka untuk penulisan
- SID (ID Sesi) yang unik dibuat
- Pelaksanaan beralih dari direktori kerja semasa ke lokasi sekunder untuk mengekalkan integriti fail
- Penerangan fail standard ditutup
- Pelaksanaan kod daemon yang disasarkan
Lebih banyak mengenai pelaksanaan contoh daemon boleh didapati di GitHub.