Apa yang <defunct> maksud dalam output dari ps?

15

Saya telah mengeluarkan ps -ef|grep javaperintah dan ini adalah salah satu entri yang saya dapat:

subhrcho   875   803  0 Jan23 pts/5    00:02:27 [java] <defunct>

Apa yang <defunct>tersirat di sini? Keadaan apakah proses itu dengan proses dengan PID = 875 in?

Kutu buku
sumber

Jawaban:

16

Dari halaman ps :

Proses yang ditandai <defunct>adalah proses mati (disebut "zombie") yang tetap karena orangtua mereka belum menghancurkannya dengan benar. Proses-proses ini akan dihancurkan oleh init (8) jika proses induk keluar.

schaiba
sumber
apa kontrak antara proses orang tua dan proses anak untuk penghancuran proses anak? Saya pikir itu adalah tugas dari proses anak untuk memberi tahu orang tua bahwa itu sedang dihancurkan?
Geek
@Geek Kernel merusak proses anak dan memberi tahu orang tua. Anak hanya memanggil _exitatau mati sinyal. Ketika kernel menghancurkan suatu proses, semua yang tersisa adalah entri dalam tabel proses, yang hilang ketika orangtua (atau proses 1, untuk anak yatim) memanggil wait.
Gilles 'SANGAT berhenti menjadi jahat'
2
@ Giles Apa artinya ketika halaman manual mengatakan orang tua tidak menghancurkan proses anak dengan benar? orang tua tidak memanggil tunggu?
Geek