Comando kill di Linux
Sui sistemi operativi simili a Unix, il comando kill invia un segnale a un processo. Se non specifichi quale segnale inviare, per impostazione predefinita viene inviato il segnale TERM, che termina il processo.
Questa pagina descrive il comando kill di GNU/Linux, che si trova in /bin/kill.
Quando esegui kill dalla riga di comando, potresti invece eseguire kill integrato nella shell, che potrebbe avere opzioni leggermente diverse. Per informazioni sulla versione integrata di kill nella shell bash, vedere il comando integrato bash “kill”.
Descrizione
Per inviare un segnale a un processo dalla riga di comando, usa kill.
Per elencare tutti i segnali disponibili, utilizzare l’opzione -l (L minuscola). Abbiamo anche fornito un elenco di segnali Linux da utilizzare come riferimento rapido.
I segnali usati di frequente includono HUP, INT, KILL, STOP, CONT e 0.
I segnali possono essere specificati in tre modi:
- per numero (es. -9)
- con il prefisso “SIG” (es. -SIGKILL)
- senza il prefisso “SIG” (es. -KILL).
Specificare il PID
Per specificare quale processo deve ricevere il segnale, utilizzare il suo PID numerico (ID processo). Per visualizzare un elenco dei processi in esecuzione, puoi utilizzare il comando ps.
È possibile utilizzare valori PID negativi per indicare l’ID del gruppo di processi, anziché l’ID del processo. Vedere la colonna PGID nell’output del comando ps, ad esempio con ps -eo user,pid,pgid,command. Se specifichi un ID gruppo di processi come destinazione di un comando kill, tutti i processi nel gruppo riceveranno il segnale.
Un PID di -1 è speciale. Indica tutti i processi tranne due: il processo kill stesso e init (PID 1), che è il processo padre di tutti i processi sul sistema. Specificando -1 come target si invia il segnale a tutti i processi tranne questi due.
Sintassi
Termina il/i processo/i:
kill pid ...
Invia un segnale ai processi:
kill {-signal | -s signal} pid ...
Elenco segnali disponibili:
kill {-l | --list[=signal] | -L | --table}
Opzioni
Opzione | Descrizione |
---|---|
-segnale, -s segnale |
Il nome, il nome abbreviato o il numero del segnale da inviare, preceduto da un trattino. Ad esempio, -SIGTERM, -TERM o -15. Per visualizzare un elenco di segnali disponibili, utilizzare le opzioni -l o -L (vedi sotto) o fare riferimento al nostro elenco di segnali Linux. |
pid | Un ID di processo numerico. Se non sei sicuro di quale sia il PID di un processo, usa il comando ps per elencarlo, ad esempio ps -aux. |
-l, –list[=signal] |
Elenca i nomi dei segnali disponibili. Con -l o –list, elenca tutti i nomi dei segnali. Con –list=signal, traduce un numero nel nome del suo segnale. |
-L, –tabella |
Elenca i nomi e i numeri dei segnali disponibili in una tabella. |
Esempi
In questi esempi, se un comando è elencato come /bin/kill, dovrebbe essere eseguito con quella versione del comando kill. Altri comandi possono essere eseguiti con kill integrato.
kill -9 -1
Uccidi tutti i processi che l’utente ha il permesso di uccidere, eccetto il processo di root (PID 1) e il processo di kill stesso.
kill -l
Elenca tutti i nomi dei segnali disponibili. Esempio di output:
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
/bin/kill -l
Uguale al comando precedente.
/bin/kill --list
Uguale ai due comandi precedenti.
/bin/kill -L
Elenca i segnali disponibili e i loro numeri in formato tabellare. Esempio di output:
1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 7 BUS 8 FPE 9 KILL 10 USR1 11 SEGV 12 USR2 13 PIPE 14 ALRM 15 TERM 16 STKFLT 17 CHLD 18 CONT 19 STOP 20 TSTP 21 TTIN 22 TTOU 23 URG 24 XCPU 25 XFSZ 26 VTALRM 27 PROF 28 WINCH 29 POLL 30 PWR 31 SYS
/bin/kill --table
Uguale al comando precedente.
/bin/kill --list=11
Traduci il numero del segnale 11 nel nome del suo segnale. Produzione:
SEGV
kill 123 4567
Invia il segnale predefinito (KILL, numero di segnale 9) per i processi con ID 123 e 4567. Questi processi vengono terminati.
Comandi correlati
fuser — Identifica i processi utilizzando file o socket.
killall — Uccidi i processi per nome.
ps — Elenca le informazioni sui processi in esecuzione.