Úkoly v Linuxu se nazývají procesy. Každý proces má jedinečné ID procesu. V tomto tutoriálu vám ukážeme, jak ukončit proces pomocí příkazů Linuxu, abyste zlepšili své dovednosti v oblasti správy VPS.
K čemu se používá příkaz Kill?
Někdy se může stát, že spustíte server nebo aplikaci, zapomenete na to a budete je muset vypnout. V takových scénářích můžeme použít příkaz kill.
Níže je několik příkladů, kde může být příkaz kill užitečný:
- Zastavit jakýkoli automatizovaný proces
- Zastavení procesu, který byl spuštěn omylem
- Zastavení procesu, který spotřebovává hodně paměti
- Vynutit zastavení jakéhokoli procesu spuštěného v systému Linux
- Zastavení procesu na pozadí
Kromě zastavení procesu může příkaz kill poskytnout několik funkcí. Například poslat signál procesu. Ve výchozím nastavení je to bráno jako signál TERM, který ukončí proces.
Jak zobrazit ID procesu v Linuxu
Příkazy Kill vám umožňují ukončit proces pomocí specifického ID procesu, známého také jako pid. Chcete-li zobrazit pid v Linuxu, můžete provést následující příkaz:
ps
Zobrazí se seznam všech dostupných procesů s pid. Pokud chcete svůj seznam upřesnit – přidejte příkaz grep, jako je tento:
ps -ux | grep java
Toto zobrazí všechny běžící java procesy ve výstupu.
Jak zobrazit všechny povelové signály pro zabití
V Linuxu je k dispozici několik signálů, které lze použít k přerušení, ukončení nebo pozastavení procesů. Příkaz lze použít následovně:
kill -l
Tento příkaz zobrazí na stránce ruční zadání různých signálů ukončení s jejich názvy a odpovídajícími čísly. I když je k dispozici více signálů, ve většině případů bychom použili SIGKILL (9) a SIGTERM (15).
Jak zabít proces v Linuxu pomocí terminálu
Nyní jsme připraveni jít dál a naučit se všechna různá použití příkazu Kill. Chcete-li pokračovat, přejděte na svůj virtuální privátní server pomocí SSH.
Použití příkazu Kill s PID
Chcete-li zabít konkrétní proces pomocí PID použijte následující příkaz:
kill 63772
Zde je 63772 pid pro proces, který chceme ukončit. Protože není zadán žádný signál, bude to SIGTERM signál. Někdy to nemusí fungovat; v takovém případě možná budete muset proces násilně zabít.
V takových případech můžete použít formát příkazu, jak je uvedeno níže:
kill [Signal_or_Option] pid
Níže je ukázkový příkaz k násilnému ukončení procesu:
kill SIGKILL 63772
Podobně pro zabití pomocí kratší možnosti, kterou můžete použít:
kill -9 63772
Aby byl proces ukončen, nahraďte 63772 příslušným pid.
Jak zabít více procesů v Linuxu
Stejným příkazem můžete zabít více procesů. Syntaxe tohoto příkazu by byla:
kill -9 pid1 pid2 pid3
Zde je příklad ukazující, jak by to vypadalo ve skutečném světě:
kill -9 63772 45116 23465
Jak zabít proces v Linuxu pomocí příkazu Pkill
Pkill je varianta příkazu kill, kde můžete zadat název procesu nebo vzor pro nalezení procesu:
pkill chrome
Výše uvedený příkaz zabije prohlížeč Chrome. Můžete také zadat částečnou shodu názvu na příkazovém řádku, například:
pkill chr
Tento příkaz však s sebou nese riziko, že někdy zabije nesprávný proces, zvláště pokud existuje více procesů se stejným názvem.
Seznam můžete zkontrolovat pomocí úplného názvu procesu:
pidof chrome
Výše uvedený příkaz lze použít, pokud znáte úplný název procesu.
Odpovídající procesy můžete zkontrolovat pomocí částečného názvu:
pgrep -l chr
Tento příkaz vypíše proces s odpovídajícím ID procesu.
Jak zabít proces v Linuxu pomocí příkazu Killall
Základní rozdíl mezi killall a kill je ten, že killall může ukončit proces jménem, zatímco příkaz kill používá pid.
Příkladem takového příkazu je:
killall chrome
To je podobné jako pkill. Killall však provádí přesnou shodu názvu, zatímco pkill může provádět shodu se vzorem. To je jeden z důvodů, killall je bezpečnější než pkill.
Dalším rozdílem je kořenový balíček, ke kterému tyto příkazy patří. V Linuxu killall patří do balíčku psmisc. Na druhou stranu příkazy jako ps, top, kill, pkill patří do balíčku procps.
Dalším rozdílem je, že killall lze upravit tak, aby ukončoval procesy na základě časových razítek. V případě, že chcete ukončit proces, který běží méně než 40 minut, můžete použít:
killall -y 40m [Process_Name>]
Podobně můžete použít níže uvedené možnosti spolu s příkazem killall:
- s – sekund
- m – minuty
- h – hodiny
- d – dny
- týdny
- M – měsíce
- y – roky
Závěr
To pokrývá nejdůležitější a nejužitečnější příkazy zabíjení. Další informace o tomto základním nástroji naleznete v příručce Linux. Hodně štěstí s vaším projektem, uvidíme se v dalším tutoriálu!