Vyhledávání na webu

Jak zabít linuxový proces pomocí Kill, Pkill a Killall


V Linuxu se zabitím procesu rozumí ukončení nebo zastavení provádění běžícího programu. Každému běžícímu procesu je přiřazeno jedinečné identifikační číslo známé jako ID procesu (PID), které pomáhá systému sledovat aktuálně aktivní procesy.

V tomto článku se dozvíme o procesu zabíjení Linuxu a jak najít a ukončit proces pomocí různých nástrojů a příkazů v Linuxu.

Co je to proces Linuxu

Jednoduše řečeno, proces je jako program, který aktuálně běží v systému, a každý proces má své vlastní speciální ID (PID) číslo. Někdy se však spuštěný program nebo proces může chovat špatně nebo může přestat reagovat nebo spotřebovat příliš mnoho systémových prostředků.

Když k tomu dojde, musíme proces zastavit nebo „zabít“ a zde se hodí příkaz kill.

Co je Kill Command

Příkaz „kill“ je klíčový nástroj, který uživatelům umožňuje posílat signály (zastavit nebo ukončit) aktuálně běžícím procesům a dát jim pokyn k řádnému ukončení nebo násilnému ukončení.

Příkaz kill je užitečný, když potřebujete spravovat a ovládat aktivity různých programů ve vašem systému Linux, jako jsou:

  • Chcete-li zastavit jakýkoli automatizovaný proces.
  • Chcete-li zastavit proces, který byl spuštěn náhodou.
  • Chcete-li zastavit proces, který využívá příliš mnoho paměti.
  • K násilnému ukončení jakéhokoli běžícího procesu v Linuxu.
  • Chcete-li zastavit proces běžící na pozadí.

Použití příkazu kill z /usr/bin vám poskytuje některé další funkce pro ukončení procesu podle názvu procesu pomocí pkill, který identifikuje procesy podle jejich jména.

Jak najít ID procesu nebo název procesu

Před ukončením běžícího procesu je nezbytné identifikovat jeho ID procesu (PID) nebo název pomocí následujícího příkazu ps, který zobrazuje informace o všech běžících procesech v systému s jejich PID (ID procesu) a dalšími informacemi.

ps -ef

Pokud chcete najít konkrétní název procesu PID, můžete použít příkaz grep, který vypíše všechny procesy běžící v systému a výsledky filtruje tak, aby se zobrazily pouze ty, které obsahují výraz „mariadb<“.

ps -ef | grep mariadb

Případně můžete přímo najít PID procesu podle názvu pomocí příkazu pgrep, jak je znázorněno.

pgrep mariadb

Jak zabít proces v Linuxu

Než zabijete, zastavíte nebo ukončíte proces, přemýšlejte o oprávněních. Pokud jste uživatel root, můžete zastavit jakýkoli proces, ale pokud jste normální uživatel, musíte před příkaz přidat „sudo“ nebo se přepnout na root pomocí „ su“ pro použití příkazu ukončení.

Běžná syntaxe příkazu kill je:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Pro příkaz kill může být Název signálu:

Z výše uvedeného chování je zřejmé:

  • SIGTERM je výchozí a nejbezpečnější způsob, jak ukončit proces.
  • SIGHUP je méně bezpečný způsob ukončení procesu než SIGTERM.
  • SIGKILL je z výše uvedených tří nejnebezpečnější způsob, jak zabít proces, který ukončí proces bez uložení.

V Linuxu existují různé signály, které můžete použít k zastavení, ukončení nebo pozastavení procesů. Pomocí následujícího příkazu můžete vypsat všechny dostupné signály zabíjení s jejich názvy a odpovídajícími čísly

kill -l

I když existuje více dostupných signálů, ale ve většině případů používáme pouze SIGKILL (9) a SIGTERM (15).

Abychom proces zabili, potřebujeme znát ID procesu. Proces je instance programu. Při každém spuštění programu se pro tento proces automaticky vygeneruje jedinečné PID.

Každý proces v Linuxu má pid. První proces, který se spustí při spuštění systému Linux, je – proces init, proto je mu ve většině případů přiřazena hodnota „1“.

Init je hlavní proces a nelze jej tímto způsobem zabít, což zajišťuje, že hlavní proces nebude náhodně zabit. Init se rozhodne a nechá se zabít, kde kill je pouze žádostí o vypnutí.

Než uděláme krok vpřed a provedeme příkaz zabití, je třeba poznamenat několik důležitých bodů:

  • Uživatel může zabít všechny své procesy.
  • Uživatel nemůže zabít proces jiného uživatele.
  • Uživatel nemůže zabít procesy, které systém používá.
  • Uživatel root může ukončit proces na úrovni systému a proces libovolného uživatele.

Chcete-li ukončit proces mariadb PID, použijte příkaz kill podle obrázku.

kill -9 3383

Výše uvedený příkaz ukončí proces, který má pid=3383, kde PID je Číselná hodnota procesu.

Jiný způsob provedení stejné funkce může být přepsán jako.

kill -SIGTERM 3383

Podobně „kill -9 PID“ je podobné jako „kill -SIGKILL PID“ a naopak.

Chcete-li potvrdit, že proces byl ukončen, můžete znovu použít příkaz ps.

ps -ef | grep mariadb

Jak zabít více procesů v Linuxu

Chcete-li v Linuxu ukončit více procesů pomocí jejich ID procesů (PID), můžete použít příkaz kill v kombinaci s příslušnými čísly PID.

Nejprve pomocí příkazu ps nebo pgrep identifikujte PID procesů, které chcete ukončit.

ps aux | grep apache2
OR
pgrep apache2

Jakmile máte PID, použijte příkaz kill k jejich ukončení.

kill -9 PID1 PID2 PID3

Jak zabít proces v Linuxu pomocí názvu procesu

Chcete-li ukončit proces pomocí názvu procesu, použijeme příkaz pkill, což je verze příkazu kill, který umožňuje zmínit název procesu nebo vzor lokalizovat proces.

Než zabijete, musíte znát název procesu a zadání špatného názvu procesu vás může vytočit.

pkill mysqld

Co když má proces příliš mnoho instancí a několik podřízených procesů, máme příkaz „killall“, který přebírá název procesu jako argument místo čísla procesu.

Jak zabít proces v Linuxu pomocí příkazu Killall

Hlavní rozdíl mezi killall a kill spočívá v tom, že killall může ukončit proces svým jménem, zatímco příkaz kill spoléhá na ID procesu (pid).

Chcete-li zabít všechny instance mysql spolu s podřízenými procesy, použijte příkaz následovně.

killall mysqld
OR
pkill mysqld

Stav procesu můžete vždy ověřit, zda běží nebo ne, pomocí některého z níže uvedených příkazů.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Nástroje pro monitorování grafických systémů Linux, jako je htop nebo gnome-system-monitor, poskytují uživatelsky přívětivé rozhraní pro vyhledávání a zabíjení procesů.

Závěr

To je ode mě prozatím vše. Brzy se vrátím s dalším zajímavým a poučným tématem. Do té doby zůstaňte naladěni a ve spojení s Tecmintem a starejte se o své zdraví. Nezapomeňte se podělit o svou cennou zpětnou vazbu v sekci komentářů.