GNU/Linux >> Linux Esercitazione >  >> Linux

Come terminare un processo <defunct> con il genitore 1

Soluzione 1:

L'unico modo per rimuovere il processo zombi/defunto sarebbe uccidere il genitore. Dato che il genitore è init (pid 1), anche questo porterebbe fuori uso il tuo sistema.

Questo ti lascia praticamente con due opzioni.

  • Modificare manualmente la tabella dei processi, ad es. crea un processo fittizio, collega il processo defunto come figlio del manichino, quindi uccidili. Abbastanza pericoloso e potresti dover ripulire manualmente altre risorse di processo come semafori e handle di file.
  • Riavvia il sistema.

Io andrei con il secondo.

Soluzione 2:

Controlla se c'è stato un kernel panic,

# dmesg |tail

Controlla se il processo è in "D" Unkillable sleep, dove è in modalità kernel per alcune chiamate di sistema che non sono ancora tornate (kernel oops o qualche altro motivo) http://www.nabble.com/What-causes-an -unkillable-process--td20645581.html

Soluzione 3:

Potresti provare a riavviare init:

 # telinit u

Altrimenti non mi preoccuperei troppo. Non è in esecuzione e non richiede alcuna risorsa ed è lì solo perché il kernel possa ricordarlo.

Soluzione 4:

Se uno zombi ha init come genitore, allora init ha smesso di funzionare correttamente. Uno dei ruoli di init è ripulire gli zombi. Se non lo fa, nessun altro lo farà. Quindi l'unica soluzione è riavviare. Se init non funziona, il riavvio potrebbe non riuscire, quindi chiudo i servizi importanti, sincronizzo il filesystem e poi premo il pulsante di accensione.

Soluzione 5:

Teniamo basso il panico, d'accordo? Un processo "defunto" o "zombie" non è un processo . È semplicemente una voce nella tabella dei processi, con un codice di uscita salvato. Pertanto, uno zombi non contiene risorse, non richiede cicli della CPU e non utilizza memoria, poiché non è un processo . Non diventare strano e pruriginoso cercando di "uccidere" i processi di zombi. Proprio come i loro omonimi, non possono essere uccisi, dato che sono già morti. Ma a differenza del tipo che mangia il cervello, non danneggiano assolutamente nessuno e non mordono altri processi.

Non lasciare che i processi zombie ti mangino il cervello. Ignorali e basta.


Linux
  1. Come uccidere un processo zombie su Linux

  2. Come uccidere il processo di zombi

  3. Come uccidere un processo figlio python creato con subprocess.check_output() quando il genitore muore?

  4. Come mettere in pausa/riprendere un processo in Linux

  5. Riavvia il processo su Linux in base al suo numero pidn con il comando kill, come?

Come uccidere un processo in Linux

Come uccidere i processi Zombie in Linux

Come individuare e terminare un processo con il terminale Linux

Come eliminare l'esecuzione del processo Linux su una porta particolare

Come KILL un processo su Linux

Come uccidere i processi zombi in Ubuntu