Поиск по сайту:
Революцию делают не голодные люди, а сытые, которых три дня не кормили (Неизв.).

Команда Kill в Linux

03.12.2019
Команда 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).

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

  • 1( HUP) — Перезагрузить процесс.
  • 9( KILL) — Убить процесс.
  • 15( TERM) — Изящно остановить процесс.
Читать  5 простых шагов по отладке сценария оболочки Bash

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

  • Если PID больше нуля, сигнал отправляется процессу с идентификатором, равным PID.
  • Если PID равно нулю, сигнал отправляется всем процессам в текущей группе процессов. Другими словами, сигнал отправляется всем процессам, принадлежащим GID оболочки, которая вызвала команду kill. Используйте команду ps -efj для просмотра идентификаторов группы процессов (GID).
  • Если PID равно -1, сигнал отправляется всем процессам с тем же UID, что и пользователь, вызывающий команду. Если вызывающий пользователь является пользователем root, сигнал отправляется всем процессам, кроме init и самого процесса kill.
  • Если PID меньше чем -1, сигнал отправляется всем процессам в группе процессов eq с GID, равным абсолютному значению PID.

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

 

Чтобы завершить или завершить процесс с помощью команды kill, сначала необходимо найти идентификационный номер процесса (PID). Вы можете сделать это, используя различные команды , такие как top, ps, pidof и pgrep.

Читать  Как использовать рекурсивную команду Grep для поиска в каталоге

Допустим, браузер 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, который завершает данные процессы.

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Описание: в этой статье мы покажем вам, как запрашивать данные…

Спасибо!

Теперь редакторы в курсе.