Команда Linux kill

Опубликовано admin - чт, 07/28/2022 - 15:51

Команда kill в Linux — встроенная утилита, которая используется для завершения процессов вручную. Команда отправляет сигнал процессу с целью его завершения.

Использование команды Linux kill с примерами

Содержание

Синтаксис

kill -l [Название_сигнала]

Опции

-s sig
SIG — имя сигнала
-n sig
SIG — номер сигнала
-l
Перечислить имена сигналов; если аргументы следуют за -l, они считаются сигнальными номерами, для которых должны быть перечислены имена
-L
Синоним -l

Примеры использования команды kill в Linux

Отображение доступных сигналов

Для отображения всех доступных сигналов используется опция -l:

oleg@mobile:~:$ kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX    
oleg@mobile:~:$ 

Способы указания сигналов:

  • по номеру (например, -5);
  • с префиксом SIG (например, -SIGkill);
  • без префикса SIG (например, -kill).

Заметим, что:

  1. Отрицательные значения PID используются для указания идентификатора группы процессов. Если вы передадите идентификатор группы процессов, то все процессы в этой группе получат сигнал.
  2. PID -1 очень особенный, поскольку он указывает на все процессы, кроме kill и init, которые являются родительскими процессами для всех процессов в системе.
  3. Чтобы отобразить список запущенных процессов, используйте команду ps, и это покажет вам запущенные процессы с их номером PID. Чтобы указать, какой процесс должен получить сигнал уничтожения, нам нужно указать PID.

Синтаксис PID:

oleg@mobile:~:$ ps
    PID TTY          TIME CMD
    686 pts/0    00:00:00 bash
 186802 pts/0    00:00:00 ps
oleg@mobile:~:$ 

Использование PID

PID используется с командой kill следующим образом:

oleg@mobile:~:$ kill 186802
bash: kill: (186802) - Нет такого процесса
oleg@mobile:~:$ 

В данном случае был убит процесс 186802.

Отправление сигнала процессам

Опция -s позволяет показать, как отправлять сигнал процессам: 

$ kill {-signal | -s signal} pid

Вывод списка доступных сигналов

Для вывода списка доступных сигналов в виде таблицы используется опция -L:

kill {-l | --list[=signal] | -L | --table}

Завершение процессов

Выше было показано завершение процесса с использованием его идентификационного номера PID. Если приложение имеет несколько идентификаторов, то их можно перечислить через пробел.

Пример:

oleg@mobile:~:$ pidof chromium
192911 192894 192867 192855 192854 192843 192827 192821 192810 192785 192774 192719 192692 192656 24860 9417 1514 1118 1114 1088 1058 882 850 848 847 451
oleg@mobile:~:$ 

Если браузер Chromium перестал отвечать на запросы, то искать PID и перечислять идентификаторы несколько геморройно. Можно поступить проще, объединив команды:

oleg@mobile:~:$ kill -9 $(pidof chromium)
oleg@mobile:~:$ 

Заключение

Вы убедились в том, что в Linux команда kill крайте нужна. Она позволяет с легкостью завершить процессы зависшего приложения и проста в использовании.

Поделиться с друзьями