Jak zabít procesy pomocí Linuxu

Většinou budete chtít, aby se program ukončil vlastním způsobem, nebo pokud je to grafická aplikace, pomocí příslušné možnosti nabídky nebo pomocí kříže v rohu.

Každá tak často zavěsí program, v takovém případě budete potřebovat metodu zabití. Můžete také chtít zabít program, který běží na pozadí, který již nemusíte spouštět.

Tato příručka obsahuje způsob zabíjení všech verzí stejné aplikace, které jsou spuštěny ve vašem systému.

Jak používat příkaz killall

Příkaz killall zabije všechny procesy podle jména. To znamená, že pokud máte tři verze stejného programu, příkaz killall zabije všechny tři.

Například otevřete malý program jako prohlížeč obrázků. Nyní otevřete další kopii stejného prohlížeče obrázků. Pro můj příklad jsem zvolil Xviewer, který je klonem Eye of Gnome .

Nyní otevřete terminál a zadejte následující příkaz:

zabít všechny

Například pro zablokování všech instancí typu Xviewer zadejte následující:

killall xviewer

Oba případy programu, který jste se rozhodli zabít, budou nyní ukončeny.

Zabijte přesný proces

killall může způsobit podivné výsledky. Tady je jeden důvod proč. Pokud máte název příkazu, který je dlouhý více než 15 znaků, příkaz killall bude fungovat pouze na prvních 15 znaků. Pokud tedy máte dva programy, které sdílejí stejné prvních 15 znaků, oba programy budou zrušeny, i když jste je chtěli jen zabít.

Chcete-li to obejít, můžete zadat následující přepínač, který zabije pouze soubory odpovídající přesnému jménu.

killall -e

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

Chcete-li se ujistit, že příkaz killall ignoruje případ název programu, který zadáte, použijte následující příkaz:

killall -I
killall - case-caseore

Zabij všechny programy ve stejné skupině

Při spuštění příkazu, jako je následující, vytvoří dva procesy:

ps -ef | méně

Jeden příkaz je pro ps -ef část, která uvádí všechny spuštěné procesy ve vašem systému a výstup je piped k méně příkazu .

Oba programy patří do stejné skupiny, což je bash.

Chcete-li obě programy zabít najednou, můžete spustit následující příkaz:

killall -g

Například k zablokování všech příkazů spuštěných v bash shell spusťte následující:

killall -g bash

Mimochodem, seznam všech běžících skupin spusťte následující příkaz:

ps -g

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

Samozřejmě, příkaz killall je poměrně silný příkaz a nechcete nechtěně zabít nesprávné procesy.

Pomocí následujícího přepínače budete dotázáni, zda jste si byli jistí předtím, než bude každý proces zabit.

killall -i

Zabijte procesy, které byly spuštěny za určitou dobu

Představte si, že jste spustili program a trvá mnohem déle, než jste doufali.

Příkaz můžete zabít následujícím způsobem:

killall -o h4

H ve výše uvedeném příkazu představuje hodiny.

Můžete také zadat některou z následujících možností:

Případně, pokud chcete zabít příkazy, které byly právě spuštěny, můžete použít následující přepínač:

killall -y h4

Tentokrát příkaz killall zabije všechny programy běžící méně než 4 hodiny.

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

Ve výchozím nastavení, pokud se pokusíte zabít program, který není spuštěn, obdržíte následující chybu:

programname: žádný proces nebyl nalezen

Pokud nechcete, aby vám bylo řečeno, že proces nebyl nalezen, použijte následující příkaz:

killall -q

Použití pravidelných výrazů

Namísto zadání názvu programu nebo příkazu můžete zadat regulární výraz tak, aby všechny procesy, které odpovídají regulárnímu výrazu, byly zavřeny příkazem killall.

Chcete-li použít regulární výraz, použijte následující příkaz:

killall -r

Zabij programy pro uživatele

Pokud chcete zabít program, který je spuštěn konkrétním uživatelem, můžete zadat následující příkaz:

killall -u

Pokud chcete zabít všechny procesy pro konkrétní uživatele, můžete vynechat název programu.

Počkejte, až se ukončíte

Ve výchozím nastavení se program killall vrátí zpět k terminálu, když jej spustíte, ale vy můžete přinutit killall počkat, dokud nejsou všechny zadané procesy uzavřeny před návratem do okna terminálu.

Chcete-li to provést, spusťte následující příkaz:

killall -w

Pokud program nikdy nezmizí, pak bude program killall i nadále žít.

Signály Signály Signály

Ve výchozím nastavení příkaz killall odešle signál SIGTERM do programů, aby je zavřel, a je to nejčistší metoda zabíjení programů.

Existují však další signály, které můžete odeslat pomocí příkazu killall a můžete je zobrazit pomocí následujícího příkazu:

killall -l

Seznam se vrátí takto:

Tento seznam je nesmírně dlouhý. Chcete-li číst o tom, co znamenají tyto signály, spusťte následující příkaz:

signál člověka 7

Obecně byste měli používat výchozí možnost SIGTERM, ale pokud program odmítne zemřít, můžete použít program SIGKILL, který nucen program ukončit, i když nedůvěřivým způsobem.

Další způsoby, jak zabít program

Existuje dalších 5 způsobů, jak zabít aplikaci Linux, jak je uvedeno v propojené příručce.

Chcete-li ušetřit úsilí klepnutím na odkaz, je zde část, která ukazuje, co jsou tyto příkazy, proč byste mohli použít tyto příkazy přes příkaz killall.

Prvním z nich je příkaz kill. Příkaz killall, jak jste viděli, je skvělý při zabíjení všech verzí stejného programu. Příkaz kill je určen k zabíjení jednoho procesu najednou a je proto více cílený.

Chcete-li spustit příkaz kill, musíte znát ID procesu procesu, který chcete zabít. Pro tento účel můžete použít příkaz ps .

Chcete-li například najít spuštěnou verzi prohlížeče Firefox, můžete spustit následující příkaz:

ps -ef | grep firefox

Ukázku dat uvidíte na konci příkazu / usr / lib / firefox / firefox. Na začátku řádku se zobrazí vaše uživatelské ID a číslo po ID uživatele je ID procesu.

Pomocí ID procesu můžete Firefox zabít spuštěním následujícího příkazu:

kill -9

Dalším způsobem, jak zabít program, je použití příkazu xkill. To se obecně používá k zabíjení chybných grafických aplikací.

Chcete-li zabít program, jako je Firefox, otevřete terminál a spusťte následující příkaz:

xkill

Kurzor se nyní změní na velký bílý kříž. Umístěte kurzor na okno, které chcete zabít, a klikněte levým tlačítkem myši. Program se okamžitě ukončí.

Další způsob, jak zabít proces, je použití příkazu Linux top. V horním příkazu jsou uvedeny všechny běžící procesy ve vašem systému.

Jediné, co musíte udělat, je zabít proces stisknutím klávesy "k" a zadat ID procesu aplikace, kterou chcete zabít.

Dříve v této části příkaz kill a požadoval, abyste zjistili proces pomocí příkazu ps a poté proces zablokovali pomocí příkazu kill.

Nejde o to nejjednodušší volbou.

Jedna věc příkaz ps vrátí množství informací, které nepotřebujete. Vše, co jste chtěli, bylo ID procesu. ID procesu můžete získat jednoduše spuštěním následujícího příkazu:

pgrep firefox

Výsledkem výše uvedeného příkazu je jednoduše ID procesu Firefoxu. Nyní můžete spustit příkaz kill takto:

kill

(Nahradit se skutečným ID procesu, který vrátil pgrep).

Ve skutečnosti je nicméně jednodušší dodat název programu na pkill následujícím způsobem:

pkill firefox

Konečně můžete použít grafický nástroj, jako je ten dodávaný s Ubuntu nazvaný "System Monitor". Chcete-li spustit program "Monitor systému", stiskněte klávesu Super (klávesa Windows na většině počítačů) a do vyhledávacího pruhu zadejte text "sysmon". Po zobrazení ikony monitoru systému klikněte na ni.

Systémový monitor zobrazuje seznam procesů. Chcete-li program ukončit čistým způsobem, vyberte jej a stiskněte tlačítko Konec v dolní části obrazovky (nebo stiskněte klávesy CTRL a E). Pokud to nefunguje, klikněte buď pravým tlačítkem myši a zvolte "Kill", nebo stiskněte klávesy CTRL a K na proces, který chcete zabít.