Android

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

БАГ НА НЕВИДИМОСТЬ В ГРЭННИ! - Granny

БАГ НА НЕВИДИМОСТЬ В ГРЭННИ! - Granny

Оглавление:

Anonim

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…

Команда kill отправляет сигнал указанным процессам или группам процессов, заставляя их действовать в соответствии с сигналом. Если сигнал не указан, по умолчанию используется значение -15 (-TERM).

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

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

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

kill -l

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

  1. Использование числа (например, -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 , который завершает данные процессы.

убить терминал