logo

Jak zabít proces v Linuxu | Kill Command

kill příkaz v Linuxu (umístěný v /bin/kill), je vestavěný příkaz, který se používá k ručnímu ukončení procesů. zabít příkaz vyšle signál procesu, který proces ukončí. Pokud uživatel nezadá žádný signál, který má být odeslán spolu s příkazem kill, pak výchozí OBDOBÍ je odeslán signál, který proces ukončí.

Základní syntaxe příkazu kill v Linuxu

Základní syntaxe příkazu `kill` je následující:



Syntaxe:

kill [signal] PID>

Tady,

vytvoření věštecké tabulky
  • PID = Příkaz `kill` vyžaduje ID procesu (PID) procesu, který chceme ukončit.
  • [signál] = Musíme specifikovat signál a pokud neuvedeme signál, výchozí signál ` TERMÍN' je odeslán k ukončení procesu

Signály lze specifikovat třemi způsoby:

Signály lze specifikovat třemi způsoby; jsou následující:



1. Podle čísla:

Signál můžeme specifikovat pomocí čísla. Například máme PID ` 1212 ` a chcete vyslat signál `SIGKILL` k zabití tohoto PID. SIGKILL má číslo signálu ` 9 ` (Chcete-li najít čísla signálů, spusťte příkaz `kill -l`).

Syntax:

kill -9 1212>

2. S předponou SIG (např./ -SIGkill)

Signál můžeme také specifikovat pomocí prefixu SIG. Například potřebujeme vyslat signál ` OBDOBÍ ` a PID je ` 1432 '. Pro kontrolu čísla signálu `SIGTERM` můžeme použít příkaz `kill -l`.



Syntax:

kill -SIGTERM 1432>

3. Bez předpony SIG:

Můžeme také specifikovat signály bez použití prefixu SIG. Například, pokud chcete poslat signál ` TERMÍN' a PID 1234 '. Pro kontrolu čísla signálu `TERM` můžeme použít příkaz `kill -l`.

Syntax:

kill -TERM 1234>

Některé běžné signály v příkazu kill

Níže uvedená tabulka ukazuje některé běžné signály a jejich odpovídající čísla.

Název signálu Číslo signálu Popis
VZDYCHNOUT 1 Detekováno zablokování na řídících terminálech nebo smrt řídícího procesu.
SIGINT 2 Přeruší to z klávesnice.
SIGKILL 9 Zabíjí signál.
OBDOBÍ patnáct Ukončí signál.

Pro kontrolu názvu a čísla signálu můžeme použít ` zabít -l ` příkaz.

Možnosti a příklady příkazu kill v Linuxu

zabít -l Volba

Chcete-li zobrazit všechny dostupné signály, můžete použít následující příkaz:

Syntax:

kill -l>

zabít -l

pár c++

Poznámka:

  • Záporné hodnoty PID se používají k označení ID skupiny procesů. Pokud předáte ID skupiny procesů, signál obdrží všechny procesy v této skupině.
  • PID -1 je velmi speciální, protože označuje všechny procesy kromě kill a init, což je nadřazený proces všech procesů v systému.
  • Chcete-li zobrazit seznam běžících procesů, použijte příkaz ps a to vám ukáže běžící procesy s jejich PID číslem. Abychom určili, který proces by měl přijímat signál zabíjení, musíme zadat PID.

Syntax:

ps>

ps

zabít PID Volba

Tato volba určuje ID procesu procesu, který má být ukončen.

Syntax:

kill pid>

zabít -s Volba

Tato volba určuje signál, který má být odeslán do procesu.

Syntax:

kill -signal pid>

kill Command v Linuxu -FAQ

Jak zabít proces z příkazového řádku Linuxu?

Chcete-li zabít proces z příkazového řádku Linuxu, můžete použítkill>příkaz následovaný ID procesu (PID) cílového procesu. Chcete-li například ukončit proces s PID 1234, použijte následující příkaz:

kill 1234>

Ve výchozím nastavení jekill>příkaz odešle signál SIGTERM a umožní procesu provést operace čištění před ukončením. Pokud proces nereaguje na SIGTERM nebo pokud je vyžadováno okamžité ukončení, můžete použít signál SIGKILL s-9>volba:

kill -9 1234>

Je důležité si uvědomit, že násilné ukončení procesu pomocí SIGKILL může vést ke ztrátě nebo poškození dat, proto se doporučuje nejprve vyzkoušet SIGTERM a uchýlit se k SIGKILL pouze v případě potřeby.

multiplexer

Jak zabít více procesů najednou?

Pomocí příkazu kill můžeme zabít více procesů najednou. Potřebujeme pouze zadat více PID oddělených mezerami, nebo můžeme také použít příkaz `killall` k ukončení všech procesů s konkrétním názvem.

Například:

Pokud chceme zabít procesy PID jako 1234, 4321 a 2342, můžeme použít následující příkaz:

kill 1234 4321 2342>

Pokud chceme zabít všechny procesy s názvem firefox. Můžeme použít následující příkaz.

killall firefox>

Je bezpečné zabít systémové procesy?

Ne, je důležité si uvědomit, že pouze zabíjet procesy, o kterých víme, že jsou bezpečné, a zabíjení systémových procesů může způsobit nestabilitu systému. Vždy je lepší použít jiné metody, jako je restartování systému nebo identifikace hlavní příčiny problému a jeho odstranění.

Jaký je rozdíl mezi SIGTERM a SIGKILL v příkazu `kill` v Linuxu?

SIGTERM, vyšle do procesu ukončovací signál, který pomůže elegantně odejít. Zatímco SIGKILL vyšle do procesu signál zabíjení, který procesy násilně a okamžitě ukončí.

Například:

Pro odeslání signálu `SIGTERM` a PID `4321` můžeme použít následující příkaz.

kill -15 4321>

K odeslání signálu `SIGKILL` a PID `4321` můžeme použít následující příkaz.

kill -9 4321>

Jak najdu ID procesu (PID) konkrétního programu v Linuxu?

Chcete-li zjistit PID konkrétního programu, můžete použítpgrep>příkaz následovaný názvem programu. Chcete-li například najít PID procesu firefox, zadejte:

pgrep firefox>

Jaký je účelpkill>a jak se liší od příkazukill>příkaz?

Thepkill>příkaz se používá k odesílání signálů procesům na základě jejich názvu, což poskytuje pohodlnější způsob ukončení procesů. Liší se odkill>tím, že uživatelům umožňuje specifikovat procesy podle názvu, nikoli podle PID.

Jak mohu zkontrolovat využití prostředků (CPU, paměť) konkrétního procesu v Linuxu?

Chcete-li zkontrolovat využití prostředků konkrétního procesu, můžete použíttop>příkaz spolu s ID procesu (PID). Chcete-li například sledovat využití prostředků procesu s PID 1234, spustili byste:

top -p 1234>

Závěr

Příkaz `kill` v Linuxu je velmi výkonný nástroj pro správu procesů. Pochopili jsme různé způsoby, jak specifikovat signály a dostupné možnosti v příkazu kill, které nám mohou pomoci efektivně spravovat naše systémové prostředky a řešit problémy rychle a efektivně.