androide

Uccidi il comando in Linux

Linux Command Line Tutorial For Beginners 15 - kill command

Linux Command Line Tutorial For Beginners 15 - kill command

Sommario:

Anonim

Linux è un sistema operativo eccezionale e avanzato, ma non è perfetto. Di tanto in tanto, alcune applicazioni potrebbero iniziare a comportarsi in modo irregolare e non rispondere o iniziare a consumare molte risorse di sistema. Le applicazioni che non rispondono non possono essere riavviate perché il processo dell'applicazione originale non si arresta mai completamente. L'unica soluzione è riavviare il sistema o terminare il processo dell'applicazione.

Esistono diverse utility che ti consentono di terminare i processi errati con kill essendo il più comunemente usato.

kill Command

kill è una shell integrata nella maggior parte delle shell derivate da Bourne come Bash e Zsh. Il comportamento del comando è leggermente diverso tra le shell e l'eseguibile standalone /bin/kill .

Utilizzare il comando type per visualizzare tutte le posizioni sul proprio sistema contenenti kill :

type -a kill

kill is a shell builtin kill is /bin/kill

L'output sopra dice che l'integrato della shell ha la priorità sull'eseguibile autonomo e viene usato ogni volta che si digita kill . Se si desidera utilizzare il file binario, digitare il percorso completo del file /bin/kill ., useremo il Bash incorporato.

La sintassi del comando kill ha la forma seguente:

kill…

Il comando kill invia un segnale a processi o gruppi di processi specificati, facendoli agire in base al segnale. Quando il segnale non è specificato, il valore predefinito è -15 (-TERM).

I segnali più comunemente usati sono:

  • 1 ( HUP ) - Ricarica un processo. 9 ( KILL ) - Termina un processo. 15 ( TERM ) - Arresta con grazia un processo.

Per ottenere un elenco di tutti i segnali disponibili, invoca il comando con l'opzione -l :

kill -l

I segnali possono essere specificati in tre modi diversi:

  1. Usando il numero (es. -1 o -s 1 ). Usando il prefisso “SIG” (es. -SIGHUP o -s SIGHUP ). Senza il prefisso “SIG” (es. -HUP o -s HUP ).

I seguenti comandi sono equivalenti tra loro:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

I PID forniti al comando kill possono essere uno dei seguenti:

  • Se il PID è maggiore di zero, il segnale viene inviato al processo con ID uguale al PID . Se il PID è uguale a zero, il segnale viene inviato a tutti i processi nel gruppo di processi corrente. In altre parole, il segnale viene inviato a tutti i processi appartenenti al GID della shell che ha invocato il comando kill . Utilizzare il comando ps -efj per visualizzare gli ID del gruppo di processi (GID). Se il PID è uguale a -1 , il segnale viene inviato a tutti i processi con lo stesso UID dell'utente che richiama il comando. Se l'utente che invoca è root, il segnale viene inviato a tutti i processi tranne init e il processo di kill Se il PID è inferiore a -1 , il segnale viene inviato a tutti i processi nel gruppo di processi eq con GID uguale al valore assoluto di il PID .

Gli utenti regolari possono inviare segnali ai propri processi, ma non quelli che appartengono ad altri utenti, mentre l'utente root può inviare segnali ai processi di altri utenti.

Terminare i processi usando il comando kill

Per terminare o terminare un processo con il comando kill , devi prima trovare il numero ID del processo (PID). Puoi farlo usando diversi comandi come top , ps , pidof e pgrep .

Supponiamo che il browser Firefox non abbia risposto e che sia necessario interrompere il processo di Firefox. Per trovare i PID del browser, utilizzare il comando pidof :

pidof firefox

Il comando stamperà gli ID di tutti i processi di Firefox:

6263 6199 6142 6076

Una volta che conosci i numeri dei processi, puoi terminarli tutti inviando il segnale TERM :

kill -9 2551 2514 1963 1856 1771

Invece di cercare PID e quindi terminare i processi, puoi combinare i comandi sopra in uno:

kill -9 $(pidof firefox)

Ricaricare i processi usando il comando kill

Un altro caso d'uso comune per kill è l'invio del segnale HUP , che dice ai processi di ricaricare le sue impostazioni.

Ad esempio, per ricaricare Nginx, è necessario inviare un segnale al processo principale. L'ID processo del processo master Nginx è reperibile nel file nginx.pid , che in genere si trova nella directory /var/run .

Utilizzare il comando cat per trovare il PID principale:

cat /var/run/nginx.pid

30251

Una volta trovato il PID principale, ricarica le impostazioni di Nginx digitando:

sudo kill -1 30251

Il comando sopra deve essere eseguito come utente root o utente con privilegi sudo.

Conclusione

Il comando kill viene utilizzato per inviare un segnale ai processi. Il segnale utilizzato più frequentemente è SIGKILL o -9 , che termina i processi indicati.

uccidi il terminale