Skip to content

Jak zabít procesy pomocí Linuxu

20 de Červenec de 2021
GettyImages 493720130 5b858acb46e0fb0050abe092

Program tak často visí, v takovém případě potřebujete metodu jeho zabití. Linux nabízí několik přístupů k ukončení programů z prostředí shellu.

Jak používat příkaz ‚killall‘

The zabít všechny příkaz zabije všechny procesy podle názvu. To znamená, že pokud máte spuštěny tři verze stejného programu, příkaz killall zabije všechny tři. Například otevřete malý program, například prohlížeč obrázků. Nyní otevřete další kopii stejného prohlížeče obrázků. Tento příklad používá Xviewer, což je klon Eye Of Gnome. Otevřete terminál a zadejte následující příkaz: killall xviewer

Obě instance programu se zavřou.

Zabijte přesný proces

Příkaz killall může způsobit podivné výsledky. Pokud máte název příkazu delší než 15 znaků, příkaz killall funguje pouze na prvních 15 znaků. Pokud tedy máte dva programy, které sdílejí stejných prvních 15 znaků, jsou oba programy zrušeny, přestože jste chtěli zabít jen jeden. Chcete-li to obejít, můžete určit následující přepínač, který zabije pouze soubory odpovídající přesnému názvu. killall -e

Ignorovat případ při zabíjení programů

Abyste se ujistili, že příkaz killall ignoruje velikost názvu programu, který zadáte, použijte následující příkaz: killall -I
killall – případ -ignore

Zabijte všechny programy ve stejné skupině

Když spustíte příkaz, například následující, vytvoří dva procesy: ps -ef | méně

Jeden příkaz je pro část ps -ef, která obsahuje seznam všech běžících procesů ve vašem systému a výstup je směrován na příkaz less. Oba programy patří do stejné skupiny, což je bash. Chcete-li zabít oba programy najednou, spusťte následující příkaz: killall -g

Chcete-li například zabít všechny příkazy spuštěné v prostředí bash, spusťte následující: killall -g bash

Chcete-li zobrazit seznam všech spuštěných skupin, spusťte následující příkaz: ps -g

Získejte potvrzení před zabitím programů

Je zřejmé, že příkaz killall je mocný příkaz a nechcete omylem zabít nesprávné procesy. Když použijete následující přepínač, budete dotázáni, zda jste si jisti, než bude každý proces zabit. killall -i

Zabijte procesy, které běží po určitou dobu

Představte si, že jste spustili program a trvá to mnohem déle, než jste doufali. Příkaz můžete zabít následujícím způsobem: killall -o h4

The h ve výše uvedeném příkazu stojí hodiny – tento příkaz zabije procesy běžící po dobu čtyř hodin nebo déle. Zadejte některý z následujících časových milníků:

  • s: sekund
  • m: minut
  • h: hodiny
  • d: dny
  • w: týdny
  • M: měsíce
  • y: roky

Chcete-li zabít příkazy, které se právě spustily, použijte následující přepínač: killall -y h4

Tentokrát příkaz killall zabije všechny programy spuštěné po dobu kratší než 4 hodiny.

Neříkej mi, když proces není zabit

Ve výchozím nastavení, pokud se pokusíte zabít program, který není spuštěn, zobrazí se následující chyba: programname: nebyl nalezen žádný proces

Pokud nechcete, aby vám někdo řekl, že proces nebyl nalezen, použijte následující příkaz: killall -q

Používání regulárních výrazů

Místo zadání názvu programu nebo příkazu zadejte regulární výraz, aby všechny procesy, které odpovídají regulárnímu výrazu, byly uzavřeny příkazem killall. Chcete-li použít regulární výraz, použijte následující příkaz: killall -r

Zabíjejte programy pro konkrétního uživatele

Chcete-li zabít program vlastněný konkrétním uživatelem, použijte -u přepínač: killall -u

Vynecháním názvu programu ukončíte všechny procesy daného uživatele.

Počkejte, až killall skončí

Ve výchozím nastavení se killall vrátí do terminálu, když jej spustíte, ale můžete donutit killall počkat, až budou všechny zadané procesy zavřeny, než se vrátíte do okna terminálu. Spusťte následující příkaz: killall -w

Pokud program nikdy nezemře, pak bude i nadále žít killall.