Comando killall di Linux

0
58

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.

kill — Invia un segnale a un processo, influenzandone il comportamento o uccidendolo.
ps — Riporta lo stato di uno o più processi.