Come uccidere un processo di zombi su un mac


13

Come uccidere un processo di zombi o trovarne il processo genitore su un Mac usando il Terminale?


possibile duplicato di come
interrompere il

3
@soandos Non è un duplicato, poiché quell'argomento non riguarda gli zombi. Nessuno dei killsegnali funziona per gli zombi IIRC. L'ho già successo prima.
Daniel Beck

Di solito si può uccidere gli zombi se si conosce il processo genitore ma questo richiede di uccidere anche quello, il che non è sempre una scelta piacevole. Pertanto mi chiedo se esiste un'altra soluzione a questo.
eFrane,

Risposte:


16

Hack Saw dice:

Purtroppo , sembra che uccidere gli zombi significhi uccidere il genitore e se il genitore è / sbin / launchd, puoi ucciderlo solo con il riavvio.

Sarebbe una pessima idea uccidere launchd, ma puoi dirlo a HUP.

Provare sudo kill -s HUP 1

Ciò causerà la launchdreinizializzazione senza riavviare. Questo ha funzionato per me in passato (wrt. Rimozione di voci di zombi).


3

Purtroppo , sembra che uccidere gli zombi significhi uccidere il genitore e se il genitore è / sbin / launchd, puoi ucciderlo solo con il riavvio.

Sto ottenendo zombi dall'uso di Xcode e dall'arresto del simulatore, e sta consegnando gli zombi al mio personale / sbin / launchd, che non è andato via quando mi sono disconnesso.

ps -xo pid, ppid, stat, command ti mostrerà i tuoi processi, con il loro ID genitore nella seconda colonna.


1

i processi di zombi sono già morti e non possono essere uccisi. Dovrebbero essere rimossi automaticamente dalla tabella dei processi quando il processo padre muore.

Non rallentano la macchina e puoi lasciarli lì (sono solo voci nella tabella dei processi).

C'è un numero massimo di processi (puoi controllarlo con sysctl kern.maxproc) e i processi di zombi lo ridurranno (man mano che vengono contati).

Se raggiungi questo limite non sarai in grado di creare nuovi processi e sarai costretto a riavviare.


"Dovrebbe essere rimosso", ma non sono sempre. Xcode è terribile nel lasciare processi zombi, e non vengono ripuliti anche se Xcode muore / viene chiuso / ucciso.
JRG-Developer

@ JRG-Developer Sono d'accordo ma non sono un problema. Non consumano alcuna risorsa.
Matteo,

2
In realtà sono un problema quando vengono creati troppi e fork non può avviare alcun nuovo processo e sei costretto a riavviare.
Adam,

2
Sono un problema quando si desidera riavviare il processo bloccato e utilizzarlo di nuovo, ma non è possibile senza riavviare.
MarcusJ,

4
Quando un'app si trova in quello stato, non è possibile riavviarla fino a quando la vecchia voce non viene cancellata. Non utilizza alcuna risorsa, ma l'inquinamento della tabella impedisce l'avvio di una nuova istanza, quindi rimani bloccato fino al riavvio.
George,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.