Що таке процес зомбі чи нитка?


11

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


13
ти відрізаєш їм голову. Або ти їх спалюєш. Це єдиний шлях.
Саймон Берго

"Бийте їх або спалюйте їх, вони піднімаються досить легко" ...
TMN

Відповіді:


17

Що таке процес або нитка зомбі, і що їх створює?

Процес зомбі - це мертві процеси.
ОС просто зберігає інформацію навколо, щоб батьки могли перевірити код виходу процесів у якийсь пізній момент, оскільки така ОС зберігає інформацію про них і, таким чином, вони з'являються при перегляді процесів.

Я просто вбиваю їх,

Ні. Вони вже мертві.
Операційна система очиститься, коли батько помирає або отримує код статусу від ОС.

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

Ні. Батько може, але не оболонка.


4

Зомбі-потік - це нитка, яка припинила її виконання, але не завершилась чисто. У ньому розміщені ресурси, використовувані потоком, але зберігається запис у таблиці потоків / процесів.

Теоретично, зомбі-потік виходить з цього стану, виконуючи _join (POSIX). Це означає, що коли ваша основна робота закінчена, процес зомбі буде вбито програмою.


2

Процес зомбі - це процес, який припинив його виконання і був видалений зі списку запланованих процесів, але ще не видалений. Залежно від ОС, tt може або не може все ще мати різні ресурси, призначені йому, і їх можна запитувати, але він не запускається.

Деякі ОС (за задумом) не дозволяють динамічно створювати або видаляти ресурси за межами певної точки події (наприклад, VxWorks Cert). Такі системи часто долають це обмеження, використовуючи заздалегідь виділені пули ресурсів, з яких вони витягують, повертають та використовують повторно. Однак, коли процес у такій системі закінчується, він не може бути видалений і замість цього стане зомбіфікованим (припиняється та видаляється зі списку планування).

Сподіваюсь, це допомагає.


0

Коли нитка / процес вбита, але все ще є запис у відповідній таблиці про неї, він стає зомбі.

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

Немає способу позбутися від зомбі, але перезавантажити


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