Comando kill di Linux

Comando kill di Linux

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.

Nota

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.

fuser — Identifica i processi utilizzando file o socket.
killall — Uccidi i processi per nome.
ps — Elenca le informazioni sui processi in esecuzione.

Articoli correlati

Ultimi articoli