GNU/Linux >> Znalost Linux >  >> Linux

Jak zabít proces v Linuxu? Příkazy k ukončení

Úvod

Pokud proces Linuxu přestane reagovat nebo spotřebovává příliš mnoho zdrojů, možná ho budete muset zabít.

Většina procesů má své vlastní metody vypínání. Bohužel procesy mohou selhat a nedovolit, aby byly vypnuty. Pokud běžící proces na pozadí nereaguje, je nutné použít příkaz k jeho ukončení.

Zde je kompletní průvodce, jak zabítproces Linuxu pomocí příkazového řádku.

Jaké procesy můžete v Linuxu zabít?

Před zabitím nebo ukončením procesu musíte zvážit oprávnění.

Uživatel root může zabít všechny procesy. Můžete buď přidat sudo před příkaz, abyste jej spustili jako root, nebo získejte root shell pomocí su . Poté spusťte příkaz.

Zabitím procesu se danému procesu odešle zpráva o ukončení. Existuje několik typů ukončovacích zpráv včetně:

  • SIGKILL SIGKILL je konečný způsob, jak zabít proces. Vždy to zabije proces a zabije proces náhle, což způsobí fatální chybu. SIGKILL by měl vždy fungovat. Pokud to nefunguje, došlo k selhání operačního systému.
  • SIGTERM SIGTERM se pokouší zabít proces, ale na rozdíl od SIGKILL může být zablokován nebo jinak zpracován. Lze to považovat za jemnější způsob pokusu o ukončení procesu.

Pro většinu účelů SIGKILL bude nejrychlejší a nejúčinnější metodou ukončení procesu.

Krok 1:Zobrazení běžících procesů Linuxu

top příkaz je nejjednodušší způsob, jak získat úplný přehled o aktuálně spuštěných procesech.

Chcete-li zobrazit seznam všech aktuálně spuštěných procesů, použijte příkaz:

top

Příkaz top odhalí ID procesů a uživatele, kromě množství paměti a výkonu procesoru každý proces.

Chcete-li zabít procesy přímo shora rozhraní, stiskněte k a zadejte ID procesu.

Chcete-li opustit nahoře rozhraní, stiskněte q .

Krok 2:Najděte proces, který chcete zabít

Než budete moci zabít proces, musíte ho najít. Existuje několik způsobů, jak můžete hledat proces v Linuxu. Procesy mohou být umístěny buď podle názvu procesu (nebo jeho částečného názvu) nebo podle ID procesu (také známého jako „pid“).

Vyhledejte proces pomocí příkazu ps

ps zobrazí podobné informace jako top , i když to nebude ve formě rozhraní. Místo toho ps poskytuje úplný seznam běžících procesů, formátovaný na základě značek, které přidáte.

ps <options>

Nejběžnější možnosti, které k tomu lze přidat, je „-aux“:

  • -a . Zobrazte procesy všech uživatelů, nikoli pouze aktuálního uživatele.
  • -u . Poskytněte podrobné informace o každém z procesů
  • -x . Zahrňte procesy, které nejsou řízeny uživateli, ale démony.

Například příkaz ps -aux vrátí podrobný seznam procesů všech procesů.

Nalezení PID pomocí pgrep nebo pidof

Linuxový příkaz pgrep je složitější způsob hledání procesu. Tento příkaz vrátí procesy založené na specifických kritériích výběru, což je známé jako vzor. Vzor je regulární výraz, například a* , kde * by byl zástupný znak.

pgrep <options> <pattern>

Zde jsou možnosti, které lze s tímto příkazem použít:

  • -l . Uveďte názvy procesů i PID.
  • -n . Vraťte proces, který je nejnovější.
  • -o . Vraťte proces, který je nejstarší.
  • -u . Najděte pouze procesy, které patří konkrétnímu uživateli.
  • -x . Najděte pouze procesy, které přesně odpovídají danému vzoru.

Příkaz pgrep -u root zobrazí všechny procesy vlastněné rootem. Příkaz pgrep -u root 'a*' vrací procesy vlastněné rootem, které začínají písmenem „a“.

pidof příkaz se používá k nalezení ID procesu za předpokladu, že znáte název procesu.

pidof <options> <program>

Může být zahrnuto několik možností, například:

  • -c . Vracejte PID pouze v rámci jednoho kořenového adresáře.
  • -o . Vynechat určité PID (zahrnout procesy, které se mají vynechat za příznakem).
  • -s . Vraťte pouze jeden PID.
  • -x . Také vrací PID shellů, které spouštějí skripty.

Krok 3:K ukončení procesu použijte možnosti příkazu Kill

V Linuxu existuje několik různých metod, jak zabít proces, v závislosti na tom, zda znáte název běžícího procesu, pid procesu nebo jak dlouho proces běží.

killall Command

killall příkaz se používá k ukončení procesů podle názvu. Ve výchozím nastavení bude odesílat signál SIGTERM. killall příkaz může zabít více procesů jediným příkazem.

killall <process>

S killall lze použít několik možností příkaz:

  • -e . Najděte přesnou shodu s názvem procesu.
  • -I . Při pokusu o nalezení názvu procesu ignorujte velká a malá písmena.
  • -i . Při ukončování procesu požádejte o další potvrzení.
  • -u . Zabíjejte pouze procesy vlastněné konkrétním uživatelem.
  • -v . Podejte zprávu o tom, zda byl proces úspěšně ukončen.

Kromě zabíjení procesů na základě jména je to killall příkaz lze také použít k ukončení na základě stáří procesu pomocí následujících příkazů:

  • -o . Použijte tento příznak s dobou trvání k ukončení všech procesů, které byly spuštěny déle než uvedenou dobu.
  • -y . Použijte tento příznak s dobou trvání k ukončení všech procesů, které byly spuštěny méně než uvedenou dobu.

killall -o 15m příkaz zabije všechny procesy, které jsou starší než 15 minut, zatímco příkaz killall -y 15m příkaz ukončí všechny procesy, které jsou kratší než 15 minut.

Příkaz pkill

pkill příkaz je podobný pgrep příkaz v tom, že zabije proces založený na názvu procesu, kromě dalších kvalifikačních faktorů. Ve výchozím nastavení pkill odešle signál SIGTERM.

pkill <options> <pattern>

možnosti pkill zahrnují:

  • -n . Zabíjejte pouze nejnovější z objevených procesů.
  • -o . Zabijte pouze nejstarší z objevených procesů.
  • -u . Zabijte pouze procesy, které vlastní vybraný uživatel.
  • -x . Zabijte pouze procesy, které přesně odpovídají vzoru.
  • -signal . Vyšlete do procesu konkrétní signál, nikoli SIGTERM.

kill Command

Pokud znáte ID procesu, můžete jej zabít příkazem:

kill <processID>

kill příkaz zabije jeden proces najednou s daným ID procesu. Odešle SIGTERM signál signalizující zastavení procesu. Čeká, až program spustí rutinu vypnutí.

-signal příkaz lze použít k určení signálu, který není SIGTERM.

kill -9 Linux Command

kill -9 je užitečný příkaz, když potřebujete vypnout nereagující službu. Spusťte jej podobně jako běžný kill příkaz:

kill -9 <processID>

Nebo

kill -SIGKILL <processID>

kill -9 příkaz odešle SIGKILL signál oznamující službě, aby se okamžitě zastavila. Nereagující program bude kill ignorovat příkaz, ale vypne se vždy, když kill -9 je vydán příkaz. Tento příkaz používejte opatrně. Obchází standardní vypínací rutinu, takže všechna neuložená data budou ztracena.

Váš operační systém nefunguje správně, pokud signál SIGKILL neukončí službu.

horní příkaz

top poskytuje rozhraní, jehož prostřednictvím může uživatel procházet aktuálně běžícími procesy.

top

Chcete-li ukončit konkrétní proces, vložte k z horního rozhraní a poté zadejte požadované ID procesu.

příkaz xkill

xkill příkaz je speciální typ příkazu, který uzavře spojení daného serveru s klienty.

xkill <resource>

Pokud server otevřel řadu nežádoucích procesů, xkill přeruší tyto procesy.

Pokud xkill spustíte bez zadání zdroje, otevře se rozhraní, které uživateli umožní vybrat okno, které se má zavřít.

Klíčové poznatky o ukončení procesu Linux

  • Pokud proces nelze zavřít jiným způsobem, lze jej ručně ukončit pomocí příkazového řádku.
  • Chcete-li ukončit proces v Linuxu, musíte proces nejprve najít. Můžete použít top , ps , pidof nebo pgrep příkazy.
  • Jakmile najdete proces, který chcete zabít, můžete ho zabít pomocí killall , pkill , killall , xkill nebo top příkazy.
  • Při zabíjení procesu můžete odeslat ukončovací signál SIGHUP, SIGKILL nebo SIGTERM.
  • Potřebujete mít oprávnění k ukončení procesu, které můžete získat pomocí sudo příkaz.

Linux
  1. Jak najít a zabít zombie proces v Linuxu

  2. Linuxové příkazy:Jak manipulovat s prioritou procesu

  3. Jak zabít běžící procesy v Linuxu

  1. Jak zabít proces zombie na Linuxu

  2. Jak zabít proces v Linuxu pomocí příkazu?

  3. Jak pozastavit/obnovit proces v Linuxu

  1. Jak zabít proces nebo zastavit program v Linuxu

  2. Jak vypsat běžící procesy v Linuxu

  3. Linux:Najděte a zabijte zombie procesy