Dai forum Linux ai meme Linux, ti imbatterai in due comandi per forzare i programmi di fine in Linux; uccidi e uccidi tutti.
Sebbene molti utenti Linux siano a conoscenza del comando kill, non molte persone conoscono e usano il comando killall.
E comunque potrebbe essere fonte di confusione per le persone. Entrambi i comandi hanno un nome dal suono simile e uno scopo simile (per terminare i processi).
Allora, qual è la differenza tra kill e killall? Quale comando dovresti usare e in quale caso dovresti usarli?
Differenza tra i comandi kill e killall
Il comando kill funziona sull'ID processo (PID) e termina i processi per i quali vengono forniti i PID. D'altra parte, il comando killall funziona sul nome del processo e uccide tutti i processi con i nomi di processo indicati. Ad esempio, se sono presenti tre istanze di mysqld
in esecuzione, killall li ucciderà tutti e tre con killall mysqld
mentre devi fornire i PID di tutte e tre le istanze per uccidere il comando come kill PID1 PID2 PID3
.
In parole più semplici, il comando kill funziona con il PID (spesso PID individuale) e il comando killall funziona con il nome del processo e uccide tutti i processi con il nome del processo.
Lascia che lo mostri in azione.
Avvio tre istanze di un programma chiamato evince e lo mando in background (continua a funzionare ma restituisce il controllo al terminale).
evince &
evince &
evince &
Ora, ho tre programmi in esecuzione con il nome del processo evince ma con ID processo diversi.
Per forzare l'arresto del processo con il comando kill, devi fornire i PID dei processi desiderati.
kill PID1
Tuttavia, fornisci il nome del processo al comando killall e ucciderà tutte le istanze in esecuzione con quel nome di processo.
killall evince
Dai un'occhiata allo screenshot qui sotto per vedere tutti i comandi in azione:
Come puoi notare qui, devi conoscere l'ID del processo per il comando kill e devi trovare il nome del processo per il comando killall.
Quale dovresti usare? Uccidi o uccidi tutti?
Poiché il comando kill funziona con i singoli processi, è più sicuro. Dopotutto, prima di lanciare il comando killall, dovresti assicurarti che non ci siano processi con nomi simili in esecuzione che non vuoi eliminare.
Spero che tu abbia un quadro chiaro dei comandi kill e killalll ora. Sentiti libero di lasciare una domanda o un suggerimento.