Що означає <defunct> у виході ps?


15

Я видав ps -ef|grep javaкоманду, і це один із записів, які я отримав:

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

Що тут <defunct>мається на увазі? Який стан цього процесу - це той процес із PID = 875 дюйма?

Відповіді:


16

На сторінці ps :

Позначені процеси - <defunct>це мертві процеси (так звані "зомбі"), які залишаються через те, що їх батько не знищив їх належним чином. Ці процеси будуть знищені за допомогою init (8), якщо вихідний процес буде закритий.


який договір між батьківським процесом та дочірнім процесом на знищення дитячого процесу? Я вважав, що це обов'язок дитячого процесу повідомляти батьків про те, що він знищений?
Geek

@Geek Ядро знищує дочірній процес та повідомляє батьків. Дитина лише дзвонить _exitабо гине за сигналом. Коли ядро ​​знищує процес, все, що залишається, - це запис у таблиці процесів, який відходить, коли батьків (або процес 1, для сиріт) викликає wait.
Жил "ТАК - перестань бути злим"

2
@Giles Що це означає, коли сторінка man каже, що батько не зруйнував належним чином дочірній процес? Батько не закликав чекати?
Geek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.