Як вбити процес зомбі на mac


13

Як вбити процес зомбі або знайти його батьківський процес на Mac за допомогою терміналу?



3
@soandos Не дублікат, оскільки ця тема не стосується зомбі. Жоден із killсигналів не працює для зомбі IIRC. У мене це було раніше.
— Даніель Бек

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

Відповіді:


16

Hack Saw каже:

На жаль , здається, що вбивство зомбі - це все, що стосується вбивства батька , і якщо батьків є / sbin / startd, ви можете вбити його лише за допомогою перезавантаження.

Вбивство було б дуже поганою launchd, але ви можете сказати це HUP.

Спробуйте sudo kill -s HUP 1

Це призведе launchdдо повторної ініціалізації без перезавантаження. Це працювало для мене в минулому (wrt. Видалення записів зомбі).


3

На жаль , здається, що вбивство зомбі - це все, що стосується вбивства батька , і якщо батьків є / sbin / startd, ви можете вбити його лише за допомогою перезавантаження.

Я отримую зомбі від використання Xcode і зупиняю тренажер, і він передає зомбі моєму особистому / sbin / startd, який не зник, коли я вийшов.

ps -xo pid, ppid, stat, команда покаже ваші процеси, з їх батьківським ідентифікатором у другому стовпці.


1

процеси зомбі вже мертві і їх неможливо вбити. Їх слід автоматично видалити з таблиці процесів, коли батьківський процес відмирає.

Вони не сповільнюють вашу машину, і ви можете залишити їх там (вони просто записи в таблицю процесів).

Існує максимальна кількість процесів (ви можете це перевірити sysctl kern.maxproc), і зомбі-процеси зменшать її (як їх підраховують).

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


"Слід зняти", але вони не завжди. Xcode страшний тим, що залишає зомбі-процеси, і вони не прибираються, навіть якщо Xcode гине / кидається / вбивається.
— JRG-Developer

@ JRG-Developer Я згоден, але вони не є проблемою. Вони не споживають жодного ресурсу.
— Маттео

2
Насправді вони є проблемою, коли занадто багато створено, а fork не може запустити жодного нового процесу, і ви змушені перезавантажуватися.
— Адам

2
Вони є проблемою, коли потрібно перезапустити збій і повторно використовувати його, але не можна без перезавантаження.
— MarcusJ

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