GNU/Linux >> Znalost Linux >  >> Linux

Příklady příkazů kill v Linuxu

Různé příkazy se používají k odesílání signálů procesům k jejich ukončení nebo „zabití“. To je nezbytné, když proces přestane reagovat (zablokuje se), způsobí nestabilitu systému nebo se nepodaří vzdát kontroly nad souborem, který se pokoušíte upravit.

Použití čísla pid k ukončení procesů

K ukončení procesů můžete použít příkaz kill s tabulkou procesů. Zadáním kill následovaného PID můžete ukončit specifické procesy. Tabulka procesů však může zobrazovat procesy, které vám nepatří. Jako uživatel můžete použít příkaz kill pouze s procesy, které vlastníte. Jako root můžete zabít jakýkoli proces.

Kill Signals

Existuje mnoho způsobů, jak zabít proces, každý z nich je namapován na signál. Tento signál určuje, jak proces ukončit. Některé signály jsou v určitých situacích vhodnější než jiné. Můžete si například přát ukončit proces elegantně a dát mu čas na vyčištění všech posledních aktivit. Některé procesy však budou tento signál ignorovat nebo se jednoduše neskončí v přiměřené době. K tomu možná budete muset vydat agresivnější signál.

Existuje mnoho různých zabíjecích signálů. Každý signál má název a jednu nebo více odpovídajících číselných hodnot; můžete použít buď s příkazem kill. Některé z nejběžnějších signálů jsou popsány níže:

1. SIGINT (2)
– Přeruší proces z terminálu.
– Může být zachycen nebo ignorován.
– Stejné jako stisknutí Ctrl+C

2. SIGKILL (9)
– Okamžitě zabije proces.
– Nelze chytit ani ignorovat.
– Poslední možnost.

3. SIGTERM (15)
– Ukončí proces.
– Může být zachycen nebo ignorován.
– Odesláno z programu, nikoli z terminálu.

4. SIGSTOP (17, 19, 23)
– Pozastavení procesu.
– Nelze zachytit ani ignorovat.
– Odesláno z programu, nikoli z terminálu.

5. SIGSTP (18, 20, 24)
– Pozastaví proces z terminálu.
– Může být zachycen nebo ignorován.
– Stejné jako stisknutí Ctrl+Z.

Ukázka signálů zabíjení

Následuje několik příkladů implementace signálů zabíjení. Chcete-li elegantně ukončit proces s ID 921:

$ kill 15 921

Pokud se tak nestane, proces okamžitě ukončíte:

$ kill 9 921

Případně proces pozastavit, než úplně odstranit:

$ kill 17 921

Příklady příkazů kill

1. Chcete-li získat seznam signálů:

# kill -l 
 1) SIGHUP	 2) SIGINT	     3) SIGQUIT	 4) SIGILL
 5) SIGTRAP	 6) SIGABRT	     7) SIGEMT	 8) SIGFPE
 9) SIGKILL	10) SIGBUS	    11) SIGSEGV	12) SIGSYS
13) SIGPIPE	14) SIGALRM	    15) SIGTERM	16) SIGURG
17) SIGSTOP	18) SIGTSTP	    19) SIGCONT	20) SIGCHLD
21) SIGTTIN	22) SIGTTOU	    23) SIGIO	24) SIGXCPU
25) SIGXFSZ	26) SIGVTALRM	27) SIGPROF	28) SIGWINCH
29) SIGINFO	30) SIGUSR1	    31) SIGUSR2

2. Chcete-li odeslat konkrétní signál:

# kill -s 9 

3. Chcete-li zadat seznam procesů pro ukončení:

# kill 1234 2345 3456 

4. Ukončete program pomocí výchozího signálu SIGTERM (ukončení):

# kill process_id

5. Ukončete úlohu na pozadí:

# kill %job_id

6. Ukončete program pomocí signálu SIGHUP (zavěsit). Mnoho démonů se místo ukončení znovu načte:

# kill -1|HUP process_id

7. Ukončete program pomocí signálu SIGINT (přerušení). To je obvykle zahájeno stisknutím kláves `Ctrl + C`:

# kill -2|INT process_id

8. Dejte operačnímu systému signál, aby okamžitě ukončil program (který nemá šanci zachytit signál):

# kill -9|KILL process_id

9. Dejte operačnímu systému signál, aby pozastavil program, dokud nebude přijat signál SIGCONT („pokračovat“):

# kill -17|STOP process_id

10. Odešlete signál `SIGUSR1` všem procesům s daným GID (ID skupiny):

# kill -SIGUSR1 -group_id


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

  2. 7 Příklady příkazů Linux df

  3. 8 Příklady příkazů Linux TR

  1. Příklady příkazů rm v Linuxu

  2. Příklady příkazů kill v Linuxu

  3. Příklady příkazů ps v Linuxu

  1. sa Příklady příkazů v Linuxu

  2. w Příklady příkazů v Linuxu

  3. Příklady příkazů pkill v Linuxu