ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Команда Kill в Linux

Команда Kill в Linux

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

Есть несколько утилит, которые позволяют вам завершать ошибочные процессы и команда 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).

Наиболее часто используемые сигналы:

Чтобы получить список всех доступных сигналов, вызовите команду с опцией -l:

kill -l

Сигналы могут быть указаны тремя различными способами:

  1. Используя номер (например, -1 или -s 1).
  2. Используя префикс «SIG» (например, -SIGHUP или -s SIGHUP).
  3. Без префикса «SIG» (например, -HUP или -s HUP).

Следующие команды эквивалентны друг другу:

kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER

 

PID, предоставленные команде kill, могут быть одним из следующих:

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

 

Чтобы завершить или завершить процесс с помощью команды 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 является отправка сигнала 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, который завершает данные процессы.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version