In questa guida, dimostreremo come uccidere un processo Linux dal suo PID.
PID in Linux
Il termine PID è un acronimo di "numero di identificazione del processo". A ogni processo viene assegnato un PID unico nel momento in cui sono creati sul sistema. Il PID numero 1 è assegnato a SystemD (init, per sistemi più vecchi). In sostanza, SystemD o INIT è sempre il primo processo per iniziare su Linux ed è genitore di tutti gli altri processi.
Ci sono un paio di strumenti che possiamo usare per ottenere il PID di un processo target. Il metodo più popolare (e consigliato) per ottenere il PID utilizza il comando PS. È uno strumento integrato disponibile su tutti i sistemi Linux. Scopri di più in modo approfondito sul comando PS in Linux.
Per stampare tutti i processi in esecuzione con il loro PID, eseguire il seguente comando PS:
$ ps -ef
Per una navigazione più facile, tubi l'uscita al comando inferiore:
$ ps -ef | meno
Si noti che la colonna PID elenca tutti i processi ordinati per PID. È il valore che stiamo cercando.
Alla ricerca di un processo particolare con un nome specifico? Quindi il comando grep è tuo amico. Può cercare un modello particolare nel file dato (stdout, in questo caso). Ad esempio, il seguente comando cercherà qualsiasi processo Firefox in esecuzione:
$ ps -ef | Grep Firefox
Se conosci il nome del processo di destinazione, allora possiamo usare il comando PIDOF per ottenere direttamente il PID.
$ Pidof Firefox
Un altro comando interessante per fare il lavoro è pgrep. Opera direttamente nell'elenco dei processi attualmente in esecuzione. Il comando PGREP prenderà il nome del processo come parametro e stamperà il PID di qualsiasi voce corrispondente.
$ PGREP Firefox
Nota il PID del processo target. La prossima sezione di questo articolo mostrerà la risoluzione del processo con il suo PID.
Uccidere un processo
Uccidere un processo richiede l'invio di un segnale terminale al processo. Tuttavia, non esiste un singolo segnale di terminazione. Ce ne sono molti, ognuno che agisce in modo leggermente diverso rispetto agli altri. Quindi, è fondamentale capirli prima.
Segnali di uccisione di Linux
Il comando Kill in Linux è responsabile dell'invio dei segnali di terminazione. Per una spiegazione dettagliata, dai un'occhiata a questa guida sul comando di uccisione Linux. In breve, dici al comando di uccisione quale segnale inviare a quale processo (usando PID).
Per ottenere l'elenco completo di tutti i segnali di terminazione, eseguire il seguente comando:
$ kill -l
Per la maggior parte, tuttavia, ne avremo solo una manciata. Qui ci sono spiegazioni dettagliate dei segnali di terminazione più comuni che dovresti conoscere.
Uccidere un processo usando Kill
Questo è il modo predefinito per terminare un processo target su Linux. Il comando Kill segue la seguente struttura di comando:
$ Kill -
Ad esempio, per inviare Sigterm a un processo, il comando sembrerebbe così:
$ kill -15
Allo stesso modo, se si desidera inviare Sigkill, quindi utilizzare il seguente comando:
$ kill -9
Ulteriori informazioni sul comando Linux Kill con spiegazioni ed esempi approfonditi.
Uccidere più processi usando killall
Il comando killall atti simili a kill. Tuttavia, invece di definire un PID specifico, utilizza il nome del processo e invia il segnale di terminazione specificato a tutti i processi che corrispondono al nome.
La struttura di comando di Killall sembra così:
$ killall -
Ad esempio, il seguente comando killall invierà Sigterm a tutti i processi Firefox in esecuzione:
$ killall -15 Firefox
Dai un'occhiata a questa guida sul comando Linux Killall per spiegazioni dettagliate con esempi. Si consiglia inoltre di dare un'occhiata alla pagina Man di Killall:
$ man killall
Uccidere più processi usando Pkill
Simile al comando killall, Pkill può anche cercare processi in base al nome e inviare il segnale di terminazione specificato. Anche la struttura di comando è quasi simile;
$ pkill -
Ad esempio, utilizzare il seguente comando Pkill per terminare il processo Firefox con Sigterm:
$ PKILL -15 Firefox
Come sempre, controlla la pagina Man di Pkill per spiegazioni approfondite con tutte le sfumature:
$ man pkill
Pensieri finali
Questa guida mette in mostra vari modi di uccidere un processo dal suo PID. Dimostra anche metodi alternativi usando il nome del processo anziché il PID. È sempre meglio avere più strumenti a tua disposizione. Qui, abbiamo usato comandi PS e PGREP per trovare i comandi PID e Kill, Pkill e Killall per l'uccisione di processi.
In molte situazioni, potresti voler sbarazzarti di fastidiosi processi di fondo che non funzionano con malfunzionamento. Ulteriori informazioni sull'identificazione dei processi di fondo in Linux. Quindi, seguendo i metodi in questa guida, puoi facilmente sbarazzarti di quelli indesiderati.
Felice calcolo!