L’invincibile comando “killall” su linux
IL killall
command è un potente strumento nella riga di comando di Linux che consente di terminare i processi con il loro nome. È un modo conveniente per interrompere più processi contemporaneamente, risparmiando tempo e fatica per terminare manualmente ogni processo individualmente. La sintassi di base del killall
comando è killall process_name
. Dove process_name
è il nome del processo che si desidera terminare. Ad esempio, per terminare tutte le istanze di firefox
process, dovresti usare il comando killall firefox
.
Cos’è il sigkill
SIGKILL
è un segnale in Linux utilizzato per terminare immediatamente un processo. È un “segnale di uccisione non catturabile e non ignorabile” e viene utilizzato quando un processo deve essere interrotto immediatamente, indipendentemente dal suo stato corrente.
IL SIGKILL
signal è uno dei numerosi segnali che possono essere inviati a un processo per richiederne l’arresto. Altri segnali includono SIGTERM
che chiede al processo di terminare con garbo, e SIGINT
che richiede che il processo venga terminato automaticamente quando è opportuno farlo.
IL SIGKILL
Il segnale viene spesso utilizzato come ultima risorsa quando altri segnali non sono riusciti a fermare un processo. È un segnale “energico” che non può essere ignorato o catturato dal processo, quindi è garantito che termini il processo se viene inviato.
Puoi usare il killall
comando per inviare il SIGKILL
segnale a un processo in Linux. Ad esempio, per forzare tutte le istanze di firefox
processo per terminare immediatamente, dovresti usare il comando killall -s SIGKILL firefox
.
È importante utilizzare il SIGKILL
segnalare in modo responsabile, in quanto può terminare processi che potrebbero essere critici per il funzionamento del sistema. Assicurati sempre di ricontrollare i processi che stai terminando prima di utilizzarli SIGKILL
.
Una caratteristica utile di killall
comando è la capacità di specificare un segnale da inviare ai processi che vengono terminati. Il segnale predefinito è SIGTERM
, che chiede al processo di terminare correttamente. Tuttavia, puoi anche utilizzare altri segnali come SIGKILL
costringere il processo a terminare immediatamente. Per specificare un segnale, puoi utilizzare il file -s
opzione seguita dal numero o dal nome del segnale. Ad esempio, per forzare tutte le istanze di firefox
processo per terminare immediatamente, dovresti usare il comando killall -s SIGKILL firefox
.
È importante notare che il killall
Il comando funziona solo sui processi di proprietà dell’utente corrente. Se vuoi uccidere i processi di proprietà di altri utenti, dovrai usare il file sudo
comando da eseguire killall
con privilegi di root
Comandi killall
Di seguito sono riportati alcuni esempi di come è possibile utilizzare il killall
comando in Linux. Per uccidere tutte le istanze di firefox
processi:
killall firefox
Per uccidere tutte le istanze di firefox
elaborare e inviare a SIGKILL
segnale per forzare l’interruzione immediata del processo:
killall -s SIGKILL firefox
Per uccidere tutte le istanze di firefox
processo di proprietà di un utente specifico (digita username
con il nome utente effettivo):
sudo killall -u username firefox
Per uccidere tutte le istanze di firefox
processo con un ID processo (PID) maggiore di 1000:
killall -P 1000 firefox
Per uccidere tutte le istanze di firefox
processo con un ID processo (PID) inferiore a 1000:
killall -p 1000 firefox
Casi d’uso del comando killall
Ecco alcuni casi d’uso comuni per il killall
comando in Linux:
- Terminare un processo che non risponde o si comporta in modo imprevisto: se si dispone di un processo che si blocca o si comporta in modo imprevisto, è possibile utilizzare
killall
per terminarlo e potenzialmente risolvere il problema. - Terminare più istanze di un processo contemporaneamente: se si hanno più istanze di un processo in esecuzione e si desidera interromperle tutte in una volta, è possibile utilizzare
killall
fare così. Ciò può essere particolarmente utile se si esegue uno script o un programma che avvia più processi e si desidera interromperli tutti in una volta. - Arresto di un processo che sta consumando una grande quantità di risorse: se un processo sta consumando una grande quantità di CPU o memoria, può influire sulle prestazioni del sistema. In questo caso, puoi usare
killall
terminare il processo e liberare risorse. - Terminare i processi di proprietà di altri utenti: se è necessario interrompere un processo di proprietà di un altro utente, è possibile utilizzare il file
sudo
comando da eseguirekillall
con privilegi di root. Ciò è utile se sei un amministratore di sistema e devi interrompere i processi che sono di proprietà di altri utenti. - Automatizzazione della chiusura dei processi: è possibile utilizzare il file
killall
comando in uno script o programma per automatizzare il processo di arresto di processi specifici. Questo può essere utile se si dispone di una serie di processi che si desidera interrompere regolarmente o come parte di un flusso di lavoro più ampio.
Alternative al comando killall
Alcune alternative al killall
comando che puoi usare in Linux per terminare i processi:
pkill
: ILpkill
comando è simile akillall
, ma consente di specificare un segnale da inviare ai processi che vengono terminati. Dispone inoltre di opzioni aggiuntive per la corrispondenza dei processi in base al loro PID, ID del processo padre o terminale.kill
: ILkill
Il comando consente di terminare un processo tramite il suo PID. Puoi usare ilps
comando per trovare il PID di un processo e quindi utilizzarekill
per terminarlo.xkill
: ILxkill
comando consente di terminare un processo facendo clic sulla sua finestra con il mouse. Questo può essere utile se non riesci a trovare il PID di un processo o se il processo non risponde e non puoi usare altri comandi per fermarlo.systemctl
: se stai eseguendo un servizio o un demone gestito dasystemd
puoi usare ilsystemctl
comandare di fermarlo. Ad esempio, per interrompere ilnginx
service, puoi usare il comandosystemctl stop nginx
.
Comando killall vs comando kill
IL kill
comando e il killall
command sono entrambi usati per terminare i processi in Linux, ma funzionano in modi leggermente diversi. Ecco un confronto tra i due comandi:
kill
: ILkill
Il comando consente di terminare un processo tramite il suo PID. Puoi usare ilps
comando per trovare il PID di un processo e quindi utilizzarekill
per terminarlo. Ad esempio, per terminare un processo con PID 1234, dovresti usare il comandokill 1234
.killall
: ILkillall
comando ti consente di terminare più processi contemporaneamente in base al loro nome. Cerca tutti i processi con il nome specificato e li termina. Ad esempio, per terminare tutte le istanze difirefox
process, dovresti usare il comandokillall firefox
.
Alcune altre differenze chiave tra kill
E killall
includere:
- Specifica del segnale:
kill
consente di specificare un segnale da inviare al processo in fase di terminazione, mentrekillall
utilizza l’impostazione predefinitaSIGTERM
segnale a meno che non sia specificato un segnale diverso con il-s
opzione. - Proprietà dell’utente:
killall
funziona solo su processi che sono di proprietà dell’utente corrente. Se vuoi uccidere i processi di proprietà di altri utenti, dovrai usare il filesudo
comando da eseguirekillall
con privilegi di root. - Corrispondenza del processo:
kill
ti consente solo di specificare un PID per abbinare i processi, mentrekillall
consente di abbinare i processi in base al loro nome, PID, ID del processo padre o terminale.
Riepilogo
Nel complesso, il killall
command è uno strumento utile da avere nel tuo toolkit quando lavori con Linux. Sia che tu abbia bisogno di terminare più processi contemporaneamente o semplicemente desideri un modo rapido per interrompere un processo specifico, killall
ti ha coperto.