androide

Come uccidere un processo in Linux

Come Killare un processo in Linux!!!

Come Killare un processo in Linux!!!

Sommario:

Anonim

Hai mai affrontato la situazione in cui hai lanciato un'applicazione e improvvisamente mentre stai usando l'applicazione, non risponde e si blocca inaspettatamente? Si tenta di riavviare l'applicazione, ma non accade nulla perché il processo di applicazione originale non si arresta mai completamente.

Bene, è successo a tutti noi ad un certo punto, no? La soluzione è terminare o terminare il processo di candidatura. Ma come?

Fortunatamente, ci sono diverse utility in Linux che ti permettono di uccidere processi errati., ti mostreremo come usare killall comandi kill , killall e pkill per terminare un processo in Linux.

La differenza principale tra questi strumenti è che kill termina i processi in base al numero ID processo (PID), mentre i comandi killall e pkill terminano i processi in esecuzione in base ai loro nomi e altri attributi.

Gli utenti normali possono uccidere i propri processi, ma non quelli che appartengono ad altri utenti, mentre l'utente root può uccidere tutti i processi.

Segnali di uccisione del sistema

kill , killall e pkill inviano un determinato segnale a processi o gruppi di processi specifici. Quando non viene specificato alcun segnale, ogni strumento invia 15 ( TERM ).

I segnali più comunemente usati sono:

  • 1 (-HUP): per ricaricare un processo. 9 (-KILL): per terminare un processo. 15 (-TERM): per arrestare con grazia un processo.

I segnali possono essere specificati in tre modi diversi:

  • utilizzando il numero (ad es. -1) con il prefisso "SIG" (ad es. -SIGHUP) senza il prefisso "SIG" (ad es. -HUP).

Utilizzare l'opzione -l per elencare tutti i segnali disponibili:

kill -l # or killall -l

I passaggi descritti di seguito funzioneranno su tutte le distribuzioni Linux.

Terminare i processi usando il comando kill

Per terminare un processo con il comando kill , devi prima trovare il PID del processo. Puoi farlo usando diversi comandi come top , ps , pidof e pgrep .

Supponiamo che il browser Firefox non abbia risposto e che sia necessario interrompere il processo di Firefox. Per trovare l'ID processo, utilizzare il comando pidof :

pidof firefox

Il comando stamperà tutti i processi di Firefox:

2551 2514 1963 1856 1771

Una volta che sai che Firefox elabora i PID per terminarli tutti invia il segnale TERM :

kill -9 2551 2514 1963 1856 1771

Terminare i processi usando il comando killall

Il comando killall termina tutti i programmi che corrispondono a un nome specificato.

Utilizzando lo stesso scenario di prima, puoi terminare il processo di Firefox digitando:

killall -9 firefox

killall accetta diverse opzioni come l'invio di segnali ai processi di proprietà di un determinato utente, la corrispondenza dei nomi dei processi con le espressioni regolari e il tempo di creazione. Puoi ottenere un elenco di tutte le opzioni digitando killall (senza alcun argomento) sul tuo terminale.

Ad esempio, per terminare tutti i processi in esecuzione come utente "sara", eseguire il comando seguente:

sudo killall -u sara

Terminare i processi usando il comando pkill

pkill termina i processi che corrispondono al modello indicato nella riga di comando:

pkill -9 firefox

Il nome del processo non deve essere una corrispondenza esatta.

Con pkill puoi anche inviare un segnale ai processi di proprietà di un determinato utente. Per uccidere solo i processi firefox di proprietà dell'utente "sara", digitare:

pkill -9 -u sara firefox

Conclusione

Terminare i programmi che non rispondono usando i comandi kill , killall e pkill è un compito facile. Hai solo bisogno di conoscere il nome del processo o PID.

uccidi il terminale