Comando killall di Linux
Sui sistemi operativi simili a Unix, il comando killall termina forzatamente i processi, specificati per nome.
Questa pagina descrive la versione GNU/Linux di killall.
Descrizione
killall invia un segnale a tutti i processi che eseguono uno dei comandi specificati. Se non viene specificato alcun nome di segnale, viene inviato SIGTERM.
I segnali possono essere specificati per nome (es. -HUP o -SIGHUP) o per numero (es. -1) o per opzione -s.
Se il nome del comando non è un’espressione regolare (opzione -r) e contiene una barra (/), i processi che eseguono quel particolare file vengono selezionati per l’eliminazione, indipendentemente dal loro nome.
killall restituisce un codice di ritorno zero se almeno un processo è stato interrotto per ogni comando elencato o se non sono stati elencati comandi e almeno un processo ha soddisfatto i criteri di ricerca -u e -Z. killall restituisce un valore diverso da zero in caso contrario.
Un processo killall non si uccide mai, ma può uccidere altri processi killall.
Sintassi
killall [-Z, --context pattern] [-e, --exact] [-g, --process-group] [-i, --interactive] [-o, --older-than TIME] [-q, --quiet] [-r, --regexp] [-s, --signal signal] [-u, --user user] [-v, --verbose] [-w, --wait] [-y, --younger-than TIME] [-I, --ignore-case] [-V, --version] [--] name ...
killall -l
killall -V, --version
Opzioni
-e, –exact |
Richiedi una corrispondenza esatta per i nomi molto lunghi. Se il nome di un comando è più lungo di 15 caratteri, il nome completo potrebbe non essere disponibile (cioè viene sostituito). In questo caso, killall uccide tutto ciò che corrisponde ai primi 15 caratteri. Con -e, tali voci vengono ignorate. killall stampa un messaggio per ogni voce saltata se -v è specificato oltre a -e. |
-I, –ignora-caso |
Esegui la corrispondenza del nome del processo senza distinzione tra maiuscole e minuscole. |
-g, –process-group |
Uccidi il gruppo di processi a cui appartiene il processo. Il segnale kill viene inviato solo una volta per gruppo, anche se sono stati trovati più processi appartenenti allo stesso gruppo di processi. |
-i, –interactive |
Chiedi conferma in modo interattivo prima di uccidere. |
-l, –list |
Elenca tutti i nomi dei segnali conosciuti. |
-o, –più vecchio di |
Trova la corrispondenza solo con i processi più vecchi (iniziati prima) del tempo specificato. Il tempo è specificato come float e poi come unità. Le unità sono s,m,h,d,w,M,y rispettivamente per secondi, minuti, ore, giorni, settimane, mesi e anni. |
-q, –quiet |
Non lamentarti se nessun processo è stato ucciso. |
-r, –regexp |
Interpreta il modello del nome del processo come un’espressione regolare estesa. |
-s, –segnale |
Invia questo segnale invece di SIGTERM. |
-u, –user |
Kill processa solo l’utente specificato. I nomi dei comandi sono facoltativi. |
-v, –verboso |
Segnala se il segnale è stato inviato con successo. |
-V, –versione |
Visualizza le informazioni sulla versione. |
-w, –aspetta |
Attendi che tutti i processi uccisi muoiano. killall controlla una volta al secondo se esiste ancora uno dei processi uccisi e restituisce solo se non ne sono rimasti. Nota che killall può attendere per sempre se il segnale è stato ignorato, non ha avuto effetto o se il processo rimane in stato di zombi. |
-y, –più-giovane di |
Abbina solo i processi più recenti (iniziati dopo) rispetto al tempo specificato. Il tempo è specificato come float e poi come unità. Le unità sono s,m,h,d,w,M,y rispettivamente per secondi, minuti, ore, giorni, settimane, mesi e anni. |
-Z, –contesto |
(Solo SELinux) Specifica il contesto di sicurezza: uccidi solo i processi che hanno un contesto di sicurezza che corrisponde a un dato modello di espressione regolare speso. Deve precedere altri argomenti sulla riga di comando. I nomi dei comandi sono facoltativi. |
Bug conosciuti
L’eliminazione per file funziona solo per gli eseguibili che vengono tenuti aperti durante l’esecuzione (ad esempio, gli eseguibili impuri non possono essere eliminati in questo modo).
Tieni presente che digitare il nome killall potrebbe non avere l’effetto desiderato su sistemi non Linux, specialmente se eseguito da un utente privilegiato.
killall -w non rileva se un processo scompare e viene sostituito da un nuovo processo con lo stesso PID tra le scansioni.
Se i processi cambiano nome, killall potrebbe non essere in grado di abbinarli correttamente.
killall ha un limite di nomi che possono essere specificati sulla riga di comando. Questa cifra è la dimensione di un long senza segno moltiplicata per 8. Per la maggior parte dei sistemi a 32 bit, il limite è 32 e, analogamente, per un sistema a 64 bit, il limite è solitamente 64.
Esempi
killall UnResponsiveProg
Termina il processo denominato “UnResponsiveProg”.
killall -I unresponsiveprog
Termina qualsiasi processo che corrisponda alla stringa “unresponsiveprog”, ignorando la differenza tra lettere maiuscole e minuscole.
Comandi correlati
kill — Invia un segnale a un processo, influenzandone il comportamento o uccidendolo.
ps — Riporta lo stato di uno o più processi.