GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il comando kill in Linux?

Hai bisogno di uccidere un processo in esecuzione? Il comando kill in Linux è costruito proprio per questo. Nessun sistema operativo è perfetto. Quindi è normale che il tuo sistema Linux abbia a che fare con l'occasionale processo che non risponde.

Per gestire le istanze in cui è necessario terminare un processo, utilizziamo il comando kill in Linux.

In questo tutorial capiremo come funziona il comando kill. Successivamente, tenteremo di utilizzare il comando kill per i nostri requisiti.

Nozioni di base sul comando kill

Esistono diverse utilità che aiutano un utente Linux a terminare processi che potrebbero comportarsi in modo anomalo. Una delle utilità più comunemente utilizzate per questo scopo nel comando kill in Linux.

Il comando kill in Linux viene utilizzato per terminare manualmente un processo utilizzando la riga di comando. È un'utilità incorporata nella shell per la maggior parte delle shell derivate dalla shell Bourne come bash.

Le opzioni per la versione incorporata bash del comando kill in Linux sono leggermente diverse dall'eseguibile standalone che si trova in /bin/kill.

Tuttavia, per il bene di questo tutorial, utilizzeremo la versione incorporata di bash del comando kill. Per controllare tutte le posizioni che contengono il comando kill sul tuo sistema, digita il seguente comando nel tuo terminale.

root@ubuntu:~# type -a kill
kill is a shell builtin
kill is /bin/kill

Dovresti ottenere un output simile allo screenshot sopra. Questo output conferma che la versione incorporata nella shell del comando kill ha la priorità sul suo eseguibile autonomo.

Quindi, l'uso del comando kill eseguirà la versione integrata di bash. Puoi usare l'eseguibile usando il percorso completo per il comando come /bin/kill/. Tuttavia, procederemo con la versione incorporata di bash del comando kill.

Uccidi il comando in Linux

Il modo migliore per comprendere qualsiasi comando è comprenderne la sintassi. Ecco come appare la sintassi del comando kill in Linux.

kill [option] PID

Il comando uccidi viene utilizzato per inviare un segnale a un processo. Questo segnale è deciso dall'opzione utilizzata durante la chiamata del comando kill.

Segnali di terminazione del processo con il comando kill

Sebbene sia disponibile un'ampia varietà di opzioni tra cui scegliere, nella tabella seguente abbiamo elencato quelle più comunemente utilizzate.

Opzione Numero del segnale Azione
SIGTERM 15 Il segnale SIGTERM viene utilizzato per dire a un processo di terminare con grazia. Questo segnale di kill potrebbe essere interpretato dal processo o potrebbe essere ignorato.
SIGKILL 9 Il segnale SIGKILL viene utilizzato per forzare l'interruzione di un processo. È un segnale che in ogni caso non può essere ignorato dal processo.
SIGHUP 1 Il segnale SIGHUP viene utilizzato per "riagganciare" un processo. Questo può essere utilizzato per riavviare un processo.
SEGNO 2 Il segnale SIGINT viene utilizzato quando l'utente desidera interrompere un processo.

Se non specifichiamo l'opzione, l'opzione predefinita verrà utilizzata per il comando kill. L'opzione predefinita per il comando kill in Linux è SIGTERM. Le opzioni possono essere utilizzate nel comando kill in tre modi diversi.

Utilizzo del numero del segnale

kill -9 [PID]

Con il prefisso "SIG"

kill -SIGKILL [PID] 

Senza il prefisso "SIG"

kill -KILL [PID]

Qual ​​è il Process ID (PID) quando si utilizza il comando kill in Linux?

Passando al parametro finale, il PID. Il PID si riferisce all'ID di processo per un determinato processo. Ogni volta che un processo viene avviato, gli viene assegnato un ID univoco dal kernel.

Usiamo il PID nel comando kill in Linux per specificare il processo a cui vogliamo inviare il segnale kill.

Il PID utilizzato nel comando kill può avere qualsiasi valore intero. Ecco un elenco contenente il valore del PID e il suo effetto sul comando kill.

Valore del PID Effetto sul comando kill
PID>0 Questo invia il segnale di kill appropriato al processo che come PID è uguale al PID menzionato nel comando.
PID=0 Questo invia il segnale di kill appropriato a tutti i processi che sono in esecuzione nello stesso gruppo di quello che invoca il comando.
PID=-1 Questo invia il segnale di kill appropriato a tutti i processi che sono in esecuzione sotto lo stesso utente di quello che invoca il comando. Nel caso in cui tale comando venga invocato dall'utente root, il segnale kill viene inviato a tutti i processi tranne il processo kill e init process.
PID<-1 Questo invia il segnale kill appropriato a tutti i processi in esecuzione in un gruppo, in modo tale che l'ID del gruppo sia uguale al valore assoluto del PID utilizzato nel comando kill.

Quando vogliamo conoscere il PID di un processo, utilizziamo il seguente comando.

pidof <processname>

Questo comando restituirà tutti i PID per il processo specificato. Ora possiamo utilizzare questo PID per inviare il segnale di uccisione desiderato al processo.

Utilizzo del comando kill

Ora abbiamo sviluppato una comprensione del comando kill in Linux e dei suoi parametri. Ora è il momento di utilizzare questa conoscenza per eseguire due operazioni comuni che coinvolgono l'uso del comando kill.

Uccidere un processo

L'uso più comune del comando kill in Linux, come suggerisce il nome, è uccidere un processo. Qui sceglieremo di terminare i processi di comando principali sul nostro sistema utilizzando il comando kill.

Per questa dimostrazione, ho semplicemente eseguito in alto su più shell per creare questi processi.

Per fare ciò, utilizzeremo prima il comando seguente per trovare i PID associati al processo di comando principale.

pidof top

Ora utilizziamo il segnale kill SIGKILL per terminare tutti i processi associati al comando in alto.

Ricaricare un processo

Un'altra funzione possibile utilizzando il comando kill in Linux è riavviare un processo. Ciò è utile nel caso in cui un servizio sia in esecuzione ma debba rileggere il suo file di configurazione per abilitare le modifiche recenti.

Ad esempio, se desideri ricaricare il processo del server Lighttpd sul tuo sistema, puoi eseguire il comando seguente.

sudo kill -SIGHUP <process ID of Lighttpd>

Conclusione

Se un processo non risponde, non è possibile riavviarlo. Le uniche opzioni disponibili sono riavviare il nostro sistema o terminare il processo particolare. Ci auguriamo che, attraverso questo tutorial, tu sia stato in grado di sviluppare una buona comprensione del comando kill.

Prova tu stesso il comando kill in Linux. Se hai commenti, suggerimenti o feedback, non esitare a contattarci tramite la sezione commenti qui sotto.


Linux
  1. Linux vs. Unix:qual è la differenza?

  2. Padroneggia il comando ls di Linux

  3. Cosa significa &alla fine di un comando Linux?

  4. Qual è l'equivalente del comando File Linux per Windows?

  5. Qual è l'equivalente di ~ (tilde) di Linux in Windows?

Spiegazione del comando tar di Linux

Che cos'è la shell in Linux?

Padroneggia la riga di comando di Linux

Cosa mi dice il mio prompt dei comandi di Linux?

Il comando timer in Linux

Il comando curl di Linux