Rumah > Artikel > Operasi dan penyelenggaraan > Apakah maksud proses zombie linux?
Proses zombi Linux ialah proses yang telah ditamatkan tetapi proses induknya tidak menangani kesannya untuk mendapatkan maklumat tentang proses yang ditamatkan ialah apabila proses anak ditamatkan sebelum proses induk, dan induknya proses belum dikitar semula Proses kanak-kanak mengeluarkan sumber yang diduduki oleh proses kanak-kanak Pada masa ini, proses kanak-kanak akan menjadi proses zombi.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
Proses zombi merujuk kepada proses yang telah ditamatkan, tetapi proses induknya belum lagi memprosesnya untuk mendapatkan maklumat tentang proses yang ditamatkan
Proses zombi ialah apabila proses anak tamat sebelum proses induk, dan proses induk tidak mengitar semula proses anak dan melepaskan sumber yang diduduki oleh proses anak, maka proses anak akan menjadi proses zombi. Jika proses induk keluar dahulu, proses anak akan diambil alih oleh init Selepas proses anak keluar, init akan mengitar semula sumber berkaitan yang didudukinya
Kita semua tahu bagaimana proses itu berfungsi. Kami memulakan program, memulakan tugas kami, dan kemudian apabila tugas selesai, kami menghentikan proses tersebut. Apabila proses berhenti, ia dikeluarkan daripada jadual proses.
Anda boleh melihat proses semasa melalui System-Monitor.
Dalam terminologi Sistem UNIX, proses yang telah ditamatkan, tetapi ibu bapanya masih belum menunggunya, dipanggil zombie Call wait / waitpid) dia, maka dia akan menjadi proses zombie. Walau bagaimanapun, jika proses induk proses telah tamat terlebih dahulu, maka proses itu tidak akan menjadi proses zombie, kerana apabila setiap proses tamat, sistem akan mengimbas semua proses yang berjalan dalam sistem semasa untuk melihat sama ada sebarang proses baru sahaja dilakukan. proses proses yang telah tamat, jika ya, akan diambil alih oleh Init dan menjadi proses induknya
Pengetahuan lanjutan
Cara menyemak proses zombie
Menggunakan arahan ps, anda boleh melihat bahawa proses dengan ID proses induk 1 adalah proses anak yatim;
Nota: Proses anak yatim ialah proses yang belum ditamatkan tetapi telah dihentikan (bersamaan dengan penggantungan latar depan), tetapi proses induknya telah ditamatkan dan diterima pakai oleh init manakala proses zombi ialah a proses yang ditamatkan, proses induknya tidak semestinya ditamatkan.
Cara membersihkan proses zombi
Tulis semula proses induk dan kumpulkan mayatnya selepas kematian proses anak. Kaedah khusus adalah untuk mengambil alih isyarat SIGCHLD. Selepas proses anak mati, isyarat SIGCHLD dihantar ke proses induk Selepas proses induk menerima isyarat ini, ia melaksanakan fungsi waitpid() untuk mengumpul mayat proses anak. Ini berdasarkan prinsip bahawa walaupun proses induk tidak memanggil tunggu, kernel akan menghantarnya mesej SIGCHLD, walaupun pemprosesan lalai adalah untuk mengabaikannya Jika anda ingin membalas mesej ini, anda boleh menetapkan fungsi pemprosesan .
Bunuh proses induk. Selepas kematian proses induk, proses zombie menjadi "proses yatim" dan diterima pakai oleh proses No. 1, init akan sentiasa bertanggungjawab untuk membersihkan proses zombie Selepas penutupan atau restart, semua proses zombie akan hilang .
Sebagai contoh, jika PID 5878 ialah proses zombi dan proses induknya ialah PID 4809, maka untuk membunuh proses zombi (5878), anda boleh membunuh proses induk (4809):
$ sudo kill -9 4809 #4809 is the parent, not the zombie
Berhati-hati semasa membunuh proses induk Jika proses induk sesuatu proses ialah PID 1 dan anda mematikannya, sistem akan dimulakan semula secara langsung.
Pembelajaran yang disyorkan: Tutorial video Linux
Atas ialah kandungan terperinci Apakah maksud proses zombie linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!