GNU/Linux >> Linux Esercitazione >  >> Linux

Quando non dovrei uccidere -9 un processo?

Generalmente, dovresti usare kill (abbreviazione di kill -s TERM , o sulla maggior parte dei sistemi kill -15 ) prima di kill -9 (kill -s KILL ) per dare al processo di destinazione la possibilità di ripulire se stesso. (I processi non possono catturare o ignorare SIGKILL , ma possono e spesso catturano SIGTERM .) Se non dai al processo la possibilità di finire quello che sta facendo e ripulire, potrebbe lasciare file corrotti (o altro stato) in giro che non sarà in grado di capire una volta riavviato.

strace /truss , ltrace e gdb sono generalmente buone idee per capire perché un processo bloccato è bloccato. (truss -u su Solaris è particolarmente utile; Trovo ltrace troppo spesso presenta argomenti alle chiamate di libreria in un formato inutilizzabile.) Solaris ha anche utili /proc strumenti basati su Linux, alcuni dei quali sono stati portati su Linux. (pstack è spesso utile).


Randal Schwartz pubblicava spesso "Uso inutile di (x)" nelle liste. Uno di questi post riguardava kill -9 . Include motivi e una ricetta da seguire. Ecco una versione ricostruita (citata sotto).

(Citazione abominio)

No no no. Non usare kill -9.

Non dà al processo la possibilità di essere pulito:

1) chiudere le connessioni socket

2) ripulire i file temporanei

3) informare i suoi figli che sta andando via

4) ripristinare le caratteristiche del terminale

e così via e così via e così via.

Generalmente, invia 15 e attendi un secondo o due, e se non funziona, invia 2, e se non funziona, invia 1. Se non funziona, RIMUOVERE IL BINARIO perché il programma si comporta male!

Non usare kill -9. Non tirare fuori la mietitrebbia solo per riordinare il vaso di fiori.

Solo un altro uso inutile di Usenet,

(.firma)


Dovrebbe sempre essere OK fare kill -9 , proprio come dovrebbe essere sempre OK spegnere tirando il cavo di alimentazione. Potrebbe essere antisociale e lasciare un po' di recupero da fare, ma dovrebbe funzionare ed è uno strumento potente per gli impazienti.

Lo dico come qualcuno che proverà prima il semplice kill (15), perché dà a un programma la possibilità di fare un po 'di pulizia - forse semplicemente scrivendo su un registro "uscita su sig 15". Ma non accetterò alcuna lamentela sul cattivo comportamento su un'uccisione -9.

Il motivo:molti clienti lo fanno per cose che i programmatori preferirebbero e poi no. Il test random kill -9 è uno scenario di test buono ed equo, e se il tuo sistema non lo gestisce, il tuo sistema è guasto.


Linux
  1. Cosa succede se "uccidi -9" non funziona?

  2. Linux – Quando non dovrei uccidere -9 Un processo?

  3. .bash_profile non originato durante l'esecuzione di Su?

  4. kill Esempi di comandi in Linux

  5. kill:comando non trovato

Come uccidere un processo zombie su Linux

Come uccidere un processo in Linux

Kill Command in Linux

Come uccidere i processi Zombie in Linux

5 modi rapidi per uccidere un processo in Linux

Come KILL un processo su Linux