GNU/Linux >> Znalost Linux >  >> Linux

Kill Command v Linuxu

Linux je skvělý a pokročilý operační systém, ale není dokonalý. Jednou za čas se některé aplikace mohou začít chovat nevyzpytatelně a přestanou reagovat nebo začnou spotřebovávat velké množství systémových prostředků. Nereagující aplikace nelze restartovat, protože původní proces aplikace se nikdy úplně nevypne. Jediným řešením je restartování systému nebo ukončení procesu aplikace.

Existuje několik utilit, které vám umožňují ukončit chybné procesy pomocí kill nejběžněji používaná bytost.

kill Příkaz #

kill je shell vestavěný do většiny shellů odvozených od Bourne, jako jsou Bash a Zsh. Chování příkazu se mezi shelly a samostatným /bin/kill mírně liší spustitelný.

Použijte type příkaz k zobrazení všech míst ve vašem systému obsahujících kill :

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

Výše uvedený výstup říká, že vestavěný shell má prioritu před samostatným spustitelným souborem a je použit vždy, když zadáte kill . Pokud chcete použít binární soubor, zadejte úplnou cestu k souboru /bin/kill . V tomto článku použijeme vestavěný Bash.

Syntaxe kill příkaz má následující tvar:

kill [OPTIONS] [PID]...

kill příkaz odešle signál určeným procesům nebo skupinám procesů, které způsobí, že budou jednat podle signálu. Pokud není signál specifikován, je výchozí -15 (-TERM).

Nejčastěji používané signály jsou:

  • 1 (HUP ) – Znovu načtěte proces.
  • 9 (KILL ) – Zabijte proces.
  • 15 (TERM ) – Pěkně zastavte proces.

Chcete-li získat seznam všech dostupných signálů, vyvolejte příkaz s -l možnost:

kill -l

Signály lze specifikovat třemi různými způsoby:

  1. Pomocí čísla (např. -1 nebo -s 1 ).
  2. Použití předpony „SIG“ (např. -SIGHUP nebo -s SIGHUP ).
  3. Bez předpony „SIG“ (např. -HUP nebo -s HUP ).

Následující příkazy jsou si navzájem ekvivalentní:

kill -1 PID_NUMBERkill -SIGHUP PID_NUMBERkill -HUP PID_NUMBER

PID poskytnuté kill příkaz může být jeden z následujících:

  • Pokud PID je větší než nula, signál je odeslán procesu s ID rovným PID .
  • Pokud PID je roven nule, signál je odeslán všem procesům v aktuální skupině procesů. Jinými slovy, signál je odeslán všem procesům patřícím k GID shellu, který vyvolal kill příkaz. Použijte ps -efj příkaz k zobrazení ID skupin procesů (GID).
  • Pokud PID je rovno -1 , signál je odeslán všem procesům se stejným UID jako uživatel, který příkaz vyvolává. Pokud je vyvolávající uživatel root, je signál odeslán všem procesům kromě init a kill samotný proces.
  • Pokud PID je menší než -1 , signál je odeslán všem procesům ve skupině procesů eq s GID rovným absolutní hodnotě PID .

Běžní uživatelé mohou posílat signály svým vlastním procesům, ale ne těm, které patří jiným uživatelům, zatímco uživatel root může posílat signály procesům jiných uživatelů.

Ukončení procesů pomocí kill Příkaz #

Chcete-li ukončit nebo zabít proces pomocí kill Nejprve musíte najít ID procesu (PID). Můžete to udělat pomocí různých příkazů, jako je top , ps , pidof a pgrep .

Řekněme, že prohlížeč Firefox přestal reagovat a musíte proces Firefoxu ukončit. Chcete-li najít PID prohlížeče, použijte pidof příkaz:

pidof firefox

Příkaz vytiskne ID všech procesů Firefoxu:

6263 6199 6142 6076

Jakmile budete znát čísla procesů, můžete je všechny zabít odesláním TERM signál:

kill -9 6263 6199 6142 6076

Místo hledání PID a následného zabíjení procesů můžete výše uvedené příkazy spojit do jednoho:

kill -9 $(pidof firefox)

Obnovení procesů pomocí kill Příkaz #

Další častý případ použití pro kill je odeslat HUP signál, který říká procesům, aby znovu načetly svá nastavení.

Chcete-li například znovu načíst Nginx, musíte odeslat signál hlavnímu procesu. ID procesu hlavního procesu Nginx lze nalézt v nginx.pid soubor, který je obvykle umístěn v /var/run adresář.

Použijte cat příkaz k nalezení hlavního PID:

cat /var/run/nginx.pid
30251

Jakmile najdete hlavní PID, znovu načtěte nastavení Nginx zadáním:

sudo kill -1 30251

Výše uvedený příkaz musí být spuštěn jako uživatel root nebo uživatel se sudoprivileges.

Závěr č.

kill příkaz se používá k odeslání signálu procesům. Nejčastěji používaným signálem je SIGKILL nebo -9 , která dané procesy ukončí.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Jak zabít proces v Linuxu pomocí příkazu?

  2. Příklady příkazů kill v Linuxu

  3. Příklady příkazů renice v Linuxu

  1. Jak zabít proces zombie na Linuxu

  2. Linuxový příkaz mv

  3. Příklady příkazů pkill v Linuxu

  1. Linux du command

  2. Linuxový ip příkaz

  3. Linux cd příkaz