Cómo matar un proceso zombie en una Mac


13

¿Cómo matar un proceso zombie o encontrar su proceso padre en una Mac usando la Terminal?



3
@soandos No es un duplicado, ya que ese tema no se trata de zombies. Ninguna de las killseñales funciona para zombies IIRC. Me ha pasado esto antes.
Daniel Beck

Por lo general, uno puede matar zombies si se conoce el proceso principal, pero esto requiere matar a ese también, lo que no siempre es una opción agradable. Por lo tanto, me pregunto si hay otra solución para esto.
eFrane

Respuestas:


16

Hack Saw dice:

Lamentablemente , parece que matar zombis se trata de matar al padre , y si el padre es / sbin / launchd, puedes matarlo solo con el reinicio.

Sería una muy mala idea matar launchd, pero puedes decirle a HUP.

Tratar sudo kill -s HUP 1

Eso hará launchdque se reinicialice sin reiniciar. Esto me ha funcionado en el pasado (wrt. Eliminando las entradas de zombies).


3

Lamentablemente , parece que matar zombis se trata de matar al padre , y si el padre es / sbin / launchd, puedes matarlo solo con el reinicio.

Estoy obteniendo zombies usando Xcode y deteniendo el simulador, y está entregándolos a mi propio personal / sbin / launchd, que no desapareció cuando me desconecté.

El comando ps -xo pid, ppid, stat, le mostrará sus procesos, con su ID principal en la segunda columna.


1

los procesos zombis ya están muertos y no pueden ser asesinados. Deben eliminarse de la tabla de procesos automáticamente cuando el proceso padre muere.

No ralentizan su máquina y puede dejarlos allí (son solo entradas en la tabla de proceso).

Hay un número máximo de procesos (puede verificarlo sysctl kern.maxproc) y los procesos zombie lo reducirán (a medida que se cuentan).

Si alcanza este límite, no podrá crear nuevos procesos y se verá obligado a reiniciar.


"Debería eliminarse", pero no siempre son así. Xcode es terrible por dejar procesos zombies, y no se limpian incluso si Xcode muere / se cierra / se mata.
JRG-Developer

@ JRG-Developer Estoy de acuerdo pero no son un problema. No consumen ningún recurso.
Matteo

2
En realidad, son un problema cuando se crean demasiados y fork no puede iniciar ningún proceso nuevo y se ve obligado a reiniciar.
Adam

2
Son un problema cuando desea reiniciar el proceso bloqueado y usarlo nuevamente, pero no puede hacerlo sin reiniciar.
MarcusJ

44
Cuando una aplicación se pone en ese estado, no puede volver a iniciarla hasta que se borre la entrada anterior. No está utilizando ningún recurso, pero la contaminación de la tabla impide que se inicie una nueva instancia, por lo tanto, está bloqueado hasta que se reinicia.
George
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.