Як вбити процес зомбі на 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.