Как убить Команду в Linux
Как убить Команду в Linux
Есть несколько утилит, которые позволяют вам завершать ошибочные процессы. Kill - наиболее часто используемая.

kill
команда
kill
это оболочка, встроенная в большинство оболочек, полученных из Bourne, таких как Bash и Zsh. Поведение команды немного различается между оболочками и автономным /bin/kill
исполняемым файлом.
Используйте type
команду для отображения всех мест в вашей системе, содержащих kill
:
type -a kill
kill is a shell builtin
kill is /bin/kill
Вывод выше говорит о том, что встроенная оболочка имеет приоритет над автономным исполняемым файлом и используется всякий раз, когда вы печатаете kill
. Если вы хотите использовать двоичный файл, введите полный путь к файлу /bin/kill
. В этой статье мы будем использовать встроенную функцию Bash.
Синтаксис kill
команды принимает следующую форму:
kill [OPTIONS] [PID]...
Команда kill
отправляет сигнал указанным процессам или группам процессов, заставляя их действовать в соответствии с сигналом. Если сигнал не указан, по умолчанию используется значение -15
(-TERM).
Наиболее часто используемые сигналы:
1
(HUP
) - Перезагрузить процесс.9
(KILL
) - убить процесс.15
(TERM
) - Изящно остановить процесс.
Чтобы получить список всех доступных сигналов, вызовите команду с -l
опцией:
kill -l

Сигналы могут быть указаны тремя различными способами:
- Используя номер (например,
-1
или-s 1
). - Используя префикс «SIG» (например,
-SIGHUP
или-s SIGHUP
). - Без префикса «SIG» (например,
-HUP
или-s HUP
).
Следующие команды эквивалентны друг другу:
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER
PID, предоставленные kill
команде, могут быть одним из следующих:
- Если
PID
больше нуля, сигнал отправляется процессу с идентификатором, равнымPID
. - Если
PID
равно нулю, сигнал отправляется всем процессам в текущей группе процессов. Другими словами, сигнал отправляется всем процессам, принадлежащим GID оболочки, которая вызвалаkill
команду. Используйтеps -efj
команду для просмотра идентификаторов группы процессов (GID). - Если
PID
равно-1
, сигнал отправляется всем процессам с тем же UID, что и пользователь, вызывающий команду. Если вызывающий пользователь является пользователем root, сигнал отправляется всем процессам, кроме init и самогоkill
процесса. - Если
PID
меньше чем-1
, сигнал отправляется всем процессам в группе процессов eq с GID, равным абсолютному значениюPID
.
Обычные пользователи могут отправлять сигналы своим собственным процессам, но не тем, которые принадлежат другим пользователям, в то время как пользователь root может отправлять сигналы процессам других пользователей.
Завершение процессов с помощью kill
команды
Чтобы завершить или завершить процесс с помощью kill
команды, сначала необходимо найти идентификационный номер процесса (PID). Вы можете сделать это , используя различные команды , такие как top
, ps
, pidof
и pgrep
.
Допустим, браузер Firefox перестал отвечать на запросы, и вам нужно завершить процесс Firefox. Чтобы найти PID браузера, используйте pidof
команду:
pidof firefox
Команда напечатает идентификаторы всех процессов Firefox:
6263 6199 6142 6076
Как только вы узнаете номера процессов, вы можете прекратить их все, отправив TERM
сигнал:
kill -9 2551 2514 1963 1856 1771
Вместо того, чтобы искать PID и затем завершать процессы, вы можете объединить вышеуказанные команды в одну:
kill -9 $(pidof firefox)
Перезагрузка процессов с помощью kill
команды
Другим распространенным случаем использования kill
является отправка HUP
сигнала, который сообщает процессам о необходимости перезагрузить его настройки.
Например, чтобы перезагрузить Nginx , вам нужно отправить сигнал ведущему процессу. Идентификатор процесса главного процесса Nginx можно найти в nginx.pid
файле, который обычно находится в /var/run
каталоге.
Используйте cat
команду, чтобы найти главный PID:
cat /var/run/nginx.pid
30251
Как только вы найдете главный PID, перезагрузите настройки Nginx, набрав:
sudo kill -1 30251
Приведенная выше команда должна выполняться от имени пользователя root или пользователя с привилегиями sudo .
Вывод
Команда kill
используется для отправки сигнала процессам. Наиболее часто используемый сигнал - это SIGKILL
или -9
, который завершает данные процессы.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.