2013-10-06 15 views
12

Stavo solo testando kill flag di commutazione con un processo di sospensione.Differenza tra 'Killed' e 'Terminated'

ho cercato ucciso con -15

[email protected]:~/Desktop/expermiments$ ps cax | grep 10005 
10005 pts/2 S+  0:00 sh 
[email protected]:~/Desktop/expermiments$ kill -15 10005 

E il processo ottenuto disdetto

[email protected]:~/Desktop/expermiments$ sh testscript.sh 
This is a script which sleeps for few seconds .. 
Terminated 

Poi ho ucciso con - 9

[email protected]:~/Desktop/expermiments$ ps -ef | grep testscript.sh 
xtechkid 10059 9852 0 13:48 pts/2 00:00:00 sh testscript.sh 
xtechkid 10064 10007 0 13:48 pts/4 00:00:00 grep --color=auto testscript.sh 
[email protected]:~/Desktop/expermiments$ kill -9 10059 

E il processo sono stati uccisi

[email protected]:~/Desktop/expermiments$ sh testscript.sh 
This is a script which sleeps for few seconds .. 
Killed 

Qual è la differenza?

risposta

21

Il segnale "terminare", SIGTERM, è un segnale che può essere intercettato in un programma. Spesso i processi che devono essere eseguiti in background cattureranno questo segnale e avvieranno un processo di spegnimento, risultando in un'uscita pulita. Il segnale "kill", SIGKILL, non può essere intercettato. Quando questo viene inviato a un processo, si tradurrà in una interruzione improvvisa di quel programma.

Ad esempio, quando si arresta o si riavvia il computer, in genere un SIGTERM viene inviato ai processi in esecuzione, consentendo in primo luogo di uscire in modo pulito se supportato. Quindi, dopo pochi secondi viene inviato un SIGKILL ai processi ancora in esecuzione in modo che le risorse in uso vengano rilasciate forzatamente (ad esempio file in uso) e la sequenza di spegnimento possa continuare (ad esempio smontare i filesystem)

4

Terminare: sarà memorizzare tutti i dati prima di spegnere (scrivere i dati dalla RAM su disco, i log, ecc)

uccisioni: E 'più simile a premere potenza del PC e pulsante di reset. Non salverà nessun registro o altri dati.