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.