Senapan Virtual?
unix
job-control
zombie
jldugger
sumber
sumber
Proses zombie (sebenarnya sekarang mereka disebut
<defunct>
) sebenarnya bukan proses. Itu hanya masuk dalam tabel proses, sehingga proses induk dapat melakukanwait()
syscall .Anda tidak perlu khawatir tentang mereka. Mereka tidak menempati sumber daya apa pun, mereka akan menghilang baik ketika orang tua mereka memanggil
wait()
ketika orang tua itu sendiri mati.sumber
Ini adalah proses yang telah sepenuhnya dialokasikan tetapi masih ada dalam tabel proses. Bandingkan ini dengan proses anak yatim, yang orang tuanya telah meninggal tetapi masih dieksekusi.
Berikut ini beberapa saran untuk menyingkirkannya.
sumber
Namun, sudah ada jawaban yang diterima: Anda BISA membunuh proses zombie. Lampirkan dengan debugger ke proses induk dan panggil fungsi waitpid. Misalnya: - mari kita asumsikan bahwa orang tua memiliki PID = 100, proses zombie memiliki PID = 200
sumber
Proses zombie tidak memiliki sumber daya yang dialokasikan untuk itu apa pun, selain entri di pohon proses. Ini terjadi ketika suatu proses selesai, namun proses induk belum memetiknya , (yaitu,
wait
ed di atasnya).Anda dapat mencoba dan memaksa orang tua untuk melakukan ini jika Anda mau dengan mengirimkannya SIGCHLD (
kill -20
), kepada orang tua, tetapi tidak ada jaminan bahwa orang tua akan menghormatinya.Anda akan sering melihatnya dalam waktu yang singkat (misalnya saat melihat pohon proses menggunakan atas) - ini normal; Dalam irisan waktu antara waktu proses anak selesai, dan jajak pendapat orang tua untuk itu - proses anak akan muncul sebagai zombie.
Jika Anda melihat proses zombie yang terus ada - yang tidak normal - masih tidak perlu khawatir - lagi karena tidak ada sumber daya yang dialokasikan untuk proses mati - umumnya berarti bahwa aplikasi ini ditulis dengan buruk oleh pengembang jelek.
Satu-satunya waktu Anda harus khawatir dari proses zombie, adalah ketika Anda melihat banyak dan banyak dari mereka, misalnya jika aplikasi jelek yang sama yang disebutkan di atas ditempatkan di bawah beban.
Kami memiliki banyak pengembang yang buruk di tempat saya bekerja, dan jadi saya memiliki hak istimewa untuk menangani masalah seperti itu dan mempelajari segala macam hal yang tidak berguna saat melakukannya. Bahkan - tim saya sering menggunakan skrip shell jelek yang ditulis oleh pengembang jelek dalam wawancara - jika kandidat dapat memilih bahwa skrip tersebut memang jelek, dan memberi tahu kami mengapa skrip itu jelek, ia memiliki kaki yang bagus di pintu.
sumber
Adapun senapan virtual ...
Dan ingat: selalu tembak mereka di kepala.
sumber
Proses zombie adalah proses yang telah selesai dieksekusi, tetapi masih tercantum dalam tabel proses.
kill -9 [parent process_name] akan meletakkannya, dengan prasangka ekstrem.
sumber