GNU/Linux >> Znalost Linux >  >> Linux

Co je The kill Command v Linuxu?

Potřebujete zabít běžící proces? Příkaz kill v Linuxu je stvořen právě pro to. Žádný operační systém není dokonalý. Proto je běžné, že se váš linuxový systém musí vypořádat s občasným nereagujícím procesem.

K řešení případů, kdy potřebujeme ukončit proces, používáme v Linuxu příkaz kill.

V tomto tutoriálu pochopíme, jak funguje příkaz kill. Později se pokusíme použít příkaz kill pro naše požadavky.

Základy příkazu kill

Existuje několik nástrojů, které pomáhají uživateli Linuxu ukončit procesy, které se mohou chovat špatně. Jeden z nejčastěji používaných nástrojů pro tento účel v příkazu kill v Linuxu.

Příkaz kill v Linuxu se používá k ručnímu ukončení procesu pomocí příkazového řádku. Je to utilita vestavěná do shellu pro většinu shellů odvozených z Bourne shellu, jako je bash.

Možnosti pro vestavěnou bash verzi příkazu kill v Linuxu se mírně liší od samostatného spustitelného souboru v /bin/kill.

V zájmu tohoto tutoriálu však budeme používat vestavěnou verzi příkazu kill vestavěnou do bash. Chcete-li zkontrolovat všechna umístění, která obsahují příkaz kill ve vašem systému, zadejte do terminálu následující příkaz.

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

Měli byste získat výstup podobný výše uvedenému snímku obrazovky. Tento výstup potvrzuje, že verze příkazu kill vestavěná do shellu má přednost před samostatným spustitelným souborem.

Použití příkazu kill tedy spustí vestavěnou verzi bash. Spustitelný soubor můžete použít pomocí úplné cesty příkazu jako /bin/kill/. Nicméně budeme pokračovat s vestavěnou verzí bash příkazu kill.

Kill command v Linuxu

Nejlepší způsob, jak porozumět jakémukoli příkazu, je pochopit jeho syntaxi. Zde je návod, jak vypadá syntaxe příkazu kill v Linuxu.

kill [option] PID

Příkaz zabít se používá k odeslání signálu do procesu. O tomto signálu rozhoduje volba použitá při volání příkazu kill.

Zpracování signálů ukončení pomocí příkazu kill

I když je na výběr široká škála možností, zde uvádíme ty nejběžněji používané v tabulce níže.

Možnost Číslo signálu Akce
SIGTERM 15 Signál SIGTERM se používá k informování procesu, aby skončil elegantně. Tento signál zabíjení může být procesem interpretován nebo může být ignorován.
SIGKILL 9 Signál SIGKILL se používá k vynucení ukončení procesu. Je to signál, který proces nemůže v žádném případě ignorovat.
SIGHUP 1 Signál SIGHUP se používá k „zavěšení“ procesu. To lze použít k restartování procesu.
SIGINT 2 Signál SIGINT se používá, když chce uživatel přerušit proces.

Pokud volbu neurčíme, použije se pro příkaz kill výchozí volba. Výchozí volba pro příkaz kill v Linuxu je SIGTERM. Možnosti lze v příkazu kill použít třemi různými způsoby.

Pomocí čísla signálu

kill -9 [PID]

S předponou „SIG“

kill -SIGKILL [PID] 

Bez předpony „SIG“

kill -KILL [PID]

Jaké je ID procesu (PID) při použití příkazu kill v Linuxu?

Přejdeme k poslednímu parametru, PID. PID odkazuje na ID procesu pro určitý proces. Kdykoli se proces spustí, je mu jádrem přiděleno jedinečné ID.

PID používáme v příkazu kill v Linuxu k určení procesu, kterému chceme poslat signál zabíjení.

PID použitý v příkazu kill může mít libovolnou celočíselnou hodnotu. Zde je seznam obsahující hodnotu PID a jeho vliv na příkaz kill.

Hodnota PID Účinek na příkaz kill
PID>0 Tímto se procesu odešle příslušný signál ukončení, který se jako PID rovná PID uvedenému v příkazu.
PID=0 Tím se odešle příslušný signál ukončení všem procesům, které běží ve stejné skupině jako ten, který příkaz vyvolal.
PID=-1 To odešle příslušný signál ukončení všem procesům, které běží pod stejným uživatelem jako ten, který příkaz vyvolal. V případě vyvolání takového příkazu uživatelem root je signál ukončení odeslán každému procesu kromě procesu zabíjení a procesu init.
PID<-1 Tím se odešle příslušný signál ukončení všem procesům, které jsou spuštěny ve skupině, takže ID skupiny se rovná absolutní hodnotě PID použitého v příkazu kill.

Když chceme znát PID procesu, použijeme následující příkaz.

pidof <processname>

Tento příkaz vrátí všechny PID pro zadaný proces. Nyní můžeme použít tento PID k odeslání požadovaného signálu pro ukončení procesu.

Použití příkazu kill

Nyní jsme pochopili příkaz kill v Linuxu a jeho parametry. Nyní je čas využít tyto znalosti k provedení dvou běžných operací zahrnujících použití příkazu kill.

Zabití procesu

Nejběžnějším použitím příkazu kill v Linuxu, jak název napovídá, je zabít proces. Zde se rozhodneme zabít hlavní procesy příkazů v našem systému pomocí příkazu kill.

Pro tuto ukázku jsem jednoduše spustil top na více shellech, abych vytvořil tyto procesy.

K tomu nejprve použijeme následující příkaz k nalezení PID spojených s procesem top příkazu.

pidof top

Nyní používáme zabíjecí signál SIGKILL k ukončení všech procesů spojených s příkazem top.

Opětovné načtení procesu

Další funkcí, která je možná pomocí příkazu kill v Linuxu, je restartování procesu. To je užitečné v případě, že služba běží, ale potřebuje znovu přečíst svůj konfigurační soubor, aby umožnila poslední změny.

Pokud například chcete znovu načíst proces serveru Lighttpd ve vašem systému, můžete spustit následující příkaz.

sudo kill -SIGHUP <process ID of Lighttpd>

Závěr

Pokud proces přestane reagovat, neexistuje způsob, jak jej restartovat. Pouze dostupné možnosti jsou restartování našeho systému nebo ukončení konkrétního procesu. Doufáme, že prostřednictvím tohoto tutoriálu jste byli schopni dobře porozumět příkazu kill.

Vyzkoušejte si příkaz kill v Linuxu sami. Pokud máte nějaké připomínky, návrhy nebo zpětnou vazbu, neváhejte nás kontaktovat prostřednictvím sekce komentářů níže.


Linux
  1. Co je Windows analogem příkazu watch v systému Linux?

  2. Jaká je výchozí jednotka velikosti v příkazu linux ls -l

  3. Co má příkaz export dělat v Linuxu?

  1. Linux vs. Unix:Jaký je rozdíl?

  2. Zvládněte příkaz Linux ls

  3. Úvod do příkazu alternatives v Linuxu

  1. Vyhledejte příkaz v Linuxu

  2. Co znamená &na konci linuxového příkazu?

  3. Co je ekvivalentní příkazu Linux File pro Windows?