GNU/Linux >> Linux Esercitazione >  >> Linux

Kill Command in Linux

Linux è un ottimo e avanzato sistema operativo, ma non è perfetto. Di tanto in tanto, alcune applicazioni potrebbero iniziare a comportarsi in modo irregolare e non rispondere o iniziare a consumare molte risorse di sistema. Le applicazioni che non rispondono non possono essere riavviate perché il processo dell'applicazione originale non si chiude mai completamente. L'unica soluzione è riavviare il sistema o terminare il processo dell'applicazione.

Esistono diverse utilità che ti consentono di terminare processi errati con kill l'essere il più comunemente usato.

kill Comando #

kill è una shell incorporata nella maggior parte delle shell derivate da Bourne come Bash e Zsh. Il comportamento del comando è leggermente diverso tra le shell e lo standalone /bin/kill eseguibile.

Usa il type comando per visualizzare tutte le posizioni sul tuo sistema contenenti kill :

type -a kill
kill is a shell builtin
kill is /bin/kill

L'output sopra dice che la shell incorporata ha la priorità sull'eseguibile standalone e viene utilizzata ogni volta che si digita kill . Se vuoi usare il file binario, digita il percorso completo del file /bin/kill . In questo articolo useremo il builtin Bash.

La sintassi di kill il comando assume la forma seguente:

kill [OPTIONS] [PID]...

L'kill comando invia un segnale a processi o gruppi di processi specificati, facendoli agire in base al segnale. Quando il segnale non è specificato, il valore predefinito è -15 (-TERMINE).

I segnali più comunemente usati sono:

  • 1 (HUP ) - Ricarica un processo.
  • 9 (KILL ) - Termina un processo.
  • 15 (TERM ) - Interrompere con grazia un processo.

Per ottenere un elenco di tutti i segnali disponibili, invoca il comando con -l opzione:

kill -l

I segnali possono essere specificati in tre modi diversi:

  1. Utilizzo del numero (ad es. -1 o -s 1 ).
  2. Utilizzo del prefisso "SIG" (ad es. -SIGHUP o -s SIGHUP ).
  3. Senza il prefisso "SIG" (ad es. -HUP o -s HUP ).

I seguenti comandi sono equivalenti tra loro:

kill -1 PID_NUMBERkill -SIGHUP PID_NUMBERkill -HUP PID_NUMBER

I PID forniti al kill il comando può essere uno dei seguenti:

  • Se PID è maggiore di zero, il segnale viene inviato al processo con ID uguale al PID .
  • Se PID è uguale a zero, il segnale viene inviato a tutti i processi nel gruppo di processi corrente. In altre parole, il segnale viene inviato a tutti i processi appartenenti al GID della shell che ha invocato il kill comando. Usa ps -efj comando per visualizzare gli ID dei gruppi di processi (GID).
  • Se PID è uguale a -1 , il segnale viene inviato a tutti i processi con lo stesso UID dell'utente che invoca il comando. Se l'utente invocante è root, il segnale viene inviato a tutti i processi tranne init e kill processo stesso.
  • Se PID è inferiore a -1 , il segnale viene inviato a tutti i processi nel gruppo di processi eq con GID uguale al valore assoluto del PID .

Gli utenti regolari possono inviare segnali ai propri processi, ma non quelli che appartengono ad altri utenti, mentre l'utente root può inviare segnali ai processi di altri utenti.

Interruzione dei processi utilizzando il kill Comando #

Per terminare o terminare un processo con il kill comando, per prima cosa devi trovare il numero ID del processo (PID). Puoi farlo usando diversi comandi come top , ps , pidof e pgrep .

Diciamo che il browser Firefox non risponde e devi terminare il processo Firefox. Per trovare i PID del browser utilizzare il pidof comando:

pidof firefox

Il comando stamperà gli ID di tutti i processi di Firefox:

6263 6199 6142 6076

Una volta che conosci i numeri dei processi, puoi ucciderli tutti inviando il TERM segnale:

kill -9 6263 6199 6142 6076

Invece di cercare i PID e quindi terminare i processi, puoi combinare i comandi precedenti in uno solo:

kill -9 $(pidof firefox)

Processi di ricarica utilizzando il kill Comando #

Un altro caso d'uso comune per kill è inviare il HUP signal, che dice ai processi di ricaricare le sue impostazioni.

Ad esempio, per ricaricare Nginx, è necessario inviare un segnale al processo master. L'ID del processo master Nginx può essere trovato in nginx.pid file, che in genere si trova in /var/run directory.

Usa il cat comando per trovare il PID principale:

cat /var/run/nginx.pid
30251

Una volta trovato il PID master, ricarica le impostazioni di Nginx digitando:

sudo kill -1 30251

Il comando sopra deve essere eseguito come root o utente con sudoprivileges.

Conclusione #

L'kill comando viene utilizzato per inviare un segnale ai processi. Il segnale più utilizzato è SIGKILL o -9 , che termina i processi specificati.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. comando IP Linux

  2. comando cd di Linux

  3. Opzioni di comando nohup in Linux

  4. renice Esempi di comandi in Linux

  5. Uccidi un processo Java (in Linux) in base al nome del processo anziché al PID

Comando Pstree in Linux

Comando W in Linux

Al comando in Linux

5 modi rapidi per uccidere un processo in Linux

Come KILL un processo su Linux

Qual è il comando kill in Linux?