Команда kill
в Linux — встроенная утилита, которая используется для завершения процессов вручную. Команда отправляет сигнал процессу с целью его завершения.
Содержание
Синтаксис
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
).
Заметим, что:
- Отрицательные значения PID используются для указания идентификатора группы процессов. Если вы передадите идентификатор группы процессов, то все процессы в этой группе получат сигнал.
- PID -1 очень особенный, поскольку он указывает на все процессы, кроме
kill
иinit
, которые являются родительскими процессами для всех процессов в системе. - Чтобы отобразить список запущенных процессов, используйте команду
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
крайте нужна. Она позволяет с легкостью завершить процессы зависшего приложения и проста в использовании.