Как убить Команду в Linux

Как убить Команду в Linux

Kill Command in Linux

21 Января 2020 | Терминал

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

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

  • (HUP) - Перезагрузить процесс.
  • (KILL) - убить процесс.
  • 15 (TERM) - Изящно остановить процесс.


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

kill -l



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

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


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

kill -1 PID_NUMBERkill -SIGHUP PID_NUMBERkill -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, который завершает данные процессы.


    Комментарии

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

Загрузка комментариев...