Di Linux, proses daemon juga dipanggil "proses elf". Ia adalah proses khas yang berjalan di latar belakang dan tidak dikawal oleh mana-mana terminal. Proses daemon adalah bebas daripada terminal kawalan dan secara berkala melaksanakan peristiwa tertentu apabila ia berlaku.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.
Definisi proses daemon
Proses daemon, juga dikenali sebagai daemon, ialah proses yang berjalan di latar belakang dan tidak dikawal oleh sebarang terminal. Proses khas yang digunakan untuk melaksanakan tugas sistem tertentu. Banyak daemon dimulakan apabila sistem but dan berjalan sehingga sistem ditutup. Yang lain bermula hanya apabila diperlukan dan berakhir secara automatik apabila tugas selesai.
Ia bebas daripada terminal kawalan dan secara berkala melaksanakan peristiwa tertentu yang berlaku. Daemon adalah proses yang sangat berguna. Kebanyakan pelayan Linux dilaksanakan menggunakan proses daemon.
Apabila sistem Linux bermula, banyak proses perkhidmatan sistem akan dimulakan Proses perkhidmatan sistem ini tidak mempunyai terminal kawalan dan tidak boleh berinteraksi secara langsung dengan pengguna. Proses lain dicipta apabila pengguna log masuk atau menjalankan program, dan ditamatkan apabila operasi tamat atau pengguna log keluar, tetapi proses perkhidmatan sistem (proses daemon) tidak terjejas oleh pengguna log masuk dan keluar, dan mereka sentiasa berlari. Proses semacam ini mempunyai nama yang dipanggil daemon.
Mari gunakan arahan ps axj untuk melihat proses dalam sistem. Parameter a bermaksud untuk menyenaraikan bukan sahaja proses pengguna semasa, tetapi juga proses semua pengguna lain parameter x bermaksud menyenaraikan bukan sahaja proses dengan terminal kawalan, tetapi juga semua proses tanpa terminal pengawalan dan maklumat berkaitan kawalan kerja.
(1) Apa-apa sahaja dengan -1 dalam lajur TPGID ialah proses yang tidak mengawal terminal, iaitu proses daemon
(; 2) dalam Nama-nama yang dilampirkan dalam [ ] dalam lajur COMMAND mewakili utas kernel ini dan tidak mempunyai kod ruang pengguna, jadi tiada nama fail program dan Nama arahan yang bermula dengan k biasanya digunakan mewakili Kernel;
(3) Kami sudah biasa dengan proses init udevd bertanggungjawab untuk mengekalkan fail peranti dalam direktori /dev, acpid bertanggungjawab untuk pengurusan kuasa, dan syslogd bertanggungjawab untuk mengekalkan fail log di bawah. /var/log;
(4) Anda boleh melihat Perhatikan bahawa proses daemon biasanya mempunyai nama yang berakhir dengan d, yang bermaksud Daemon.
Ciri-ciri proses daemon
(1) Di Linux, antara muka untuk setiap sistem untuk berkomunikasi dengan pengguna menjadi terminal, dan setiap proses yang berjalan dari terminal ini akan Dilampirkan ke terminal ini, terminal ini dipanggil terminal kawalan proses ini; (2) Apabila terminal kawalan ditutup, proses yang sepadan akan ditutup secara automatik. Tetapi proses daemon boleh menembusi had ini Ia dipisahkan dari terminal dan berjalan di latar belakang (Tujuan dipisahkan dari terminal adalah untuk menghalang maklumat semasa proses berjalan daripada dipaparkan dalam mana-mana terminal dan proses itu akan. tidak dicetuskan oleh mana-mana terminal yang diganggu oleh maklumat terminal), ia mula berjalan apabila ia dilaksanakan, dan tidak keluar sehingga keseluruhan sistem ditutup (sudah tentu ia boleh dianggap sebagai membunuh proses daemon yang sepadan);
(3) Jika anda mahu sesuatu yang tertentu Jika proses itu tidak terjejas oleh pengguna atau gangguan atau perubahan lain, maka proses itu mesti diubah menjadi proses daemon.Hubungan antara proses, kumpulan proses, sesi dan terminal kawalan
Oleh kerana penciptaan proses daemon memerlukan perubahan parameter persekitaran ini, adalah sangat penting untuk difahami hubungan antara mereka Penting:
Kumpulan proses: Ia terdiri daripada satu atau lebih proses, dan nombor kumpulan proses (GID) ialah pemimpin proses PID proses ini.Langkah paling kritikal dalam mencipta proses daemon ialah memanggil fungsi setsid ke buat Ketua Sesi baharu .
Perhatikan bahawa sebelum memanggil fungsi ini, proses semasa tidak dibenarkan menjadi ketua kumpulan proses, jika tidak, fungsi mengembalikan -1. Ia juga mudah untuk memastikan bahawa proses semasa bukan ketua kumpulan proses Hanya garpu dahulu dan kemudian panggil setsid. Proses anak yang dibuat oleh fork berada dalam kumpulan proses yang sama dengan proses induk Ketua kumpulan proses mestilah proses pertama kumpulan, jadi proses anak tidak boleh menjadi proses pertama kumpulan proses kanak-kanak tidak akan ada masalah.
#includepid_t setid(void);//该函数调用成功时返回新创建的Session的id(其实也就是当前进程的id),出错返回-1。
(2) Buat kumpulan proses baharu, proses semasa ialah Ketua kumpulan proses, dan ID proses semasa ialah ID kumpulan proses
(3) Jika semasa proses pada asalnya mempunyai terminal kawalan, kemudian Ia kehilangan terminal ini dan menjadi proses tanpa terminal kawalan. (Terminal kawalan yang dipanggil hilang bermakna terminal kawalan asal masih terbuka dan masih boleh dibaca dan ditulis, tetapi ia hanyalah fail terbuka biasa, bukan terminal kawalan).
Cara untuk mematikan proses daemon
1 Mula-mula ps axj | grep 守护进程名字
, cari proses daemon yang sepadan, dan kemudian gunakan kill -9 守护进程名
untuk bunuh;
2 Gunakan perintah ps -ef
untuk mencari proses daemon yang sepadan, dan kemudian gunakan perintah kill -9
untuk membunuhnya; , tutup dan mulakan semula proses pengurusan automatik.
Cadangan berkaitan: "
Tutorial Video LinuxAtas ialah kandungan terperinci apa itu daemon linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!