Il comando killall invia qualsiasi segnale specificato, o il segnale di terminazione predefinito, a tutti i processi che corrispondono al nome specificato. Simile a pkill ma presenta alcune differenze funzionali, come la corrispondenza esatta dei nomi dei processi. Ecco la sintassi:
# killall [-u user] [-signal] name...
Per dimostrare, avvieremo un paio di istanze del programma di sospensione e poi le termineremo.
$ sleep 500 & [1] 18801 $ sleep 600 & [2] 18802
$ killall sleep [1]- Terminated sleep [2]+ Terminated sleep
Ricorda, come per uccidere; devi disporre dei privilegi di superutente per inviare segnali a processi che non ti appartengono.
Se si verifica l'errore seguente durante l'esecuzione del comando killall:
killall: command not found
puoi installare il pacchetto seguente secondo la tua scelta di distribuzione:
Distribuzione del sistema operativo | Comando |
---|---|
Debian | apt-get install psmisc |
Ubuntu | apt-get install psmisc |
Alpino | apk aggiungi psmisc |
Arch Linux | pacman -S psmisc |
Kali Linux | apt-get install psmisc |
CentOS | yum install psmisc |
Fedora | dnf installa psmisc |
Raspbian | apt-get install psmisc |
Esempi di comando killall
1. Per terminare tutti i comandi specificati:
# killall
2. Per elencare tutti i segnali conosciuti:
# killall -l # killall --list
3. Non lamentarti se nessun processo è stato interrotto:
# killall -q # killall --quiet
4. Per inviare il segnale specificato invece di SIGTERM:
# killall -s 9 bash # killall --signal 9 bash
5. Per terminare i processi di proprietà di un particolare utente:
# killall -u mike
6. Per impostare la modalità dettagliata:
# killall -v # killall --verbose
7. Per visualizzare la versione:
# killall -V # killall --version
8. Per specificare di attendere che tutti i processi uccisi muoiano:
# killall -w # killall --wait
9. Per terminare i processi con il contesto di sicurezza specificato:
# killall -Z # killall --context
10. Richiedere interattivamente conferma prima della risoluzione:
# killall -i process_name
11. Termina un processo usando il segnale SIGINT (interrupt), che è lo stesso segnale inviato premendo `Ctrl + C`:
# killall -INT process_name
12. Forza l'uccisione di un processo:
# killall -KILL process_name
Conclusione
I comandi spesso usati insieme a ps sono kill e killall. Durante l'esecuzione di ps, abbiamo visto che c'è una colonna che mostra PID, abbreviazione di ID processo. Se un processo non funziona correttamente, si blocca o vogliamo semplicemente terminarlo, un modo è usare il comando kill. Passagli semplicemente il PID, ad esempio, dato un PID di 123:
# kill 123
Se vuoi abbinare il processo per nome anziché per PID, puoi usare killall, ad esempio, se Firefox è stato bloccato e volessimo forzare l'uscita:
# killall firefox