"Існує 1 процес зомбі"


33

Це повідомлення з’являється під час входу в систему на машині ...

There is 1 zombie process.
  • Що це мені говорить?
  • Це щось, про що я повинен хвилюватися?
  • Якщо так, то що мені робити, і як?

20
У вас поблизу є двоствольна рушниця?
ЄЕАА

Відповіді:


28

Нічого турбуватися:

Зомбі

В операційних системах Unix процес зомбі або неіснуючий процес - це процес, який завершив виконання, але все ще має запис у таблиці процесів, дозволяючи процесу, який запустив його, прочитати свій вихідний статус. У барвистій метафорі цього терміна дитячий процес загинув, але ще не вжився.

Коли процес закінчується, вся пам'ять та ресурси, пов'язані з ним, розміщуються, щоб їх можна було використовувати в інших процесах. Однак запис процесу в таблиці процесів залишається. Батькові надсилається сигнал SIGCHLD, який вказує на те, що дитина померла; обробник цього сигналу, як правило, виконує системний виклик очікування, який зчитує стан виходу та видаляє зомбі. Потім ідентифікатор процесу зомбі та запис у таблиці процесів можуть бути використані повторно. Однак якщо батько ігнорує SIGCHLD, зомбі залишиться в таблиці процесів. У деяких ситуаціях це може бути бажано, наприклад, якщо батько створює інший дочірній процес, він гарантує, що йому не буде виділено той самий ідентифікатор процесу.

Джерело: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process


Дякую Марку за хороший опис; тепер, як би я його знайшов, розробіть, чи зберігати його, а якщо ні, звідти видаліть його (і повідомлення).
Джон Мей

Узалі вони відійдуть самі, якщо це насправді вас дратує, ви можете перезавантажити або знайти батьківський процес PID і вбити його, але це залежить від того, що залишає зомбі позаду, що може бути проблематично вбити саме цей процес.
Марк-Андре Р.

2
Не забудьте прийняти мою відповідь, якщо це справжня відповідь на ваше запитання;) дякую!
Марк-Андре Р.

10
Вибачте, ви відповіли лише на першу частину його запитання. Досі незрозуміло, чи варто про це хвилюватися і що з цим робити.

0

Як пояснено у прийнятій відповіді, у вас є процес, який завершив виконання, але все ще знаходиться в таблиці процесів: https://serverfault.com/a/390216/48449

Це не повинно завдати шкоди, якщо це лише один процес, але все ж не повинен відбуватися. Якщо їх занадто багато, і ви не перезавантажуєте або не перезапускаєте спричиняючий батьківський процес, який виробляє їх, ви можете досягти максимальної кількості дозволених процесів і викликати серйозні проблеми.

Щоб дізнатись, чи підходить турбота і до якого іншого процесу належить зомбі, для мене це працює:

ps -elf --forest | grep -C5 '<[d]efunct>'

Збільште кількість контекстних рядків, якщо необхідно, щоб дізнатися про батьківський процес, в ідеалі зафіксуйте цей процес, щоб змусити його "пожинати" закінчені підпроцеси.

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