Android

Jak zabít proces v Linuxu

Jak zarabiać w internecie? - Nerd Log #13

Jak zarabiać w internecie? - Nerd Log #13

Obsah:

Anonim

Už jste někdy čelili situaci, kdy jste spustili aplikaci, a náhle, když ji používáte, přestane reagovat a nečekaně se zhroutí? Pokoušíte se spustit aplikaci znovu, ale nic se nestane, protože původní proces aplikace se nikdy úplně nevypne.

No, stalo se to někdy všem nám, že? Řešením je ukončit nebo zabít proces aplikace. Ale jak?

Naštěstí existuje v Linuxu několik utilit, které vám umožňují zabíjet potupné procesy., ukážeme vám, jak pomocí příkazů kill , killall a pkill ukončit proces v systému Linux.

Hlavním rozdílem mezi těmito nástroji je to, že kill ukončí procesy založené na ID procesu (PID), zatímco příkazy killall a pkill ukončují spuštěné procesy na základě jejich jmen a dalších atributů.

Běžní uživatelé mohou zabíjet své vlastní procesy, ale ne ty, které patří jiným uživatelům, zatímco uživatel root může zabíjet všechny procesy.

Signály zabíjení systému

kill , killall a pkill vysílají daný signál určeným procesům nebo skupinám procesů. Pokud není zadán žádný signál, odešle každý nástroj 15 ( TERM ).

Nejběžněji používané signály jsou:

  • 1 (-HUP): pro opětovné načtení procesu. 9 (-KILL): zabít proces. 15 (-TERM): elegantně zastavit proces.

Signály lze specifikovat třemi různými způsoby:

  • použití čísla (např. -1) s předponou „SIG“ (např. -SIGHUP) bez předpony „SIG“ (např. -HUP).

Použijte volbu -l pro výpis všech dostupných signálů:

kill -l # or killall -l

Následující kroky budou fungovat na všech distribucích Linuxu.

Ukončení procesů pomocí příkazu kill

Chcete-li ukončit proces příkazem kill , musíte nejprve najít proces PID. To lze provést pomocí různých příkazů, jako jsou top , ps , pidof a pgrep .

Řekněme, že prohlížeč Firefox přestal reagovat a je třeba proces Firefox zabít. Chcete-li najít ID procesu, použijte příkaz pidof :

pidof firefox

Příkaz vytiskne všechny procesy Firefoxu:

2551 2514 1963 1856 1771

Jakmile víte, že Firefox zpracovává PID, aby ukončil všechny, vyšle signál TERM :

kill -9 2551 2514 1963 1856 1771

Ukončení procesů pomocí příkazu killall

Příkaz killall ukončí všechny programy, které odpovídají zadanému názvu.

Při použití stejného scénáře jako dříve můžete proces Firefox zabít zadáním:

killall -9 firefox

killall přijímá několik možností, jako je odesílání signálů do procesů vlastněných daným uživatelem, porovnávání názvů procesů s regulárními výrazy a čas vytvoření. Seznam všech možností získáte zadáním killall (bez argumentů) na vašem terminálu.

Chcete-li například ukončit všechny procesy spuštěné jako uživatel „sara“, spusťte následující příkaz:

sudo killall -u sara

Ukončení procesů pomocí příkazu pkill

pkill ukončí procesy, které odpovídají vzoru zadanému na příkazovém řádku:

pkill -9 firefox

Název procesu nemusí být přesně shodný.

S pkill můžete také poslat signál do procesů, které vlastní daný uživatel. Chcete-li zabít pouze procesy firefox, které vlastní uživatel „sara“, zadejte:

pkill -9 -u sara firefox

Závěr

Ukončení nereagujících programů pomocí příkazů kill , killall a pkill je snadný úkol. Stačí znát název procesu nebo PID.

zabít terminál