Команда Pkill в Linux

Linux pkill

В этой статье рассматриваются основы команды pkill в Linux.

pkill — это утилита командной строки, которая отправляет сигналы процессам запущенной программы на основе заданных критериев. Процессы могут быть указаны по их полным или частичным именам, пользователю, запустившему процесс, или другим атрибутам.

Команда pkill является частью пакета procps (или procps-ng ), который предустановлен практически во всех дистрибутивах Linux. pkill — это, по сути, оболочка для программы pgrep , которая только выводит список соответствующих процессов.

Как использовать команду pkill

Синтаксис команды pkill следующий:

 pkill [ OPTIONS ] 

Соответствующий указывается с помощью расширенных регулярных выражений.

При вызове без параметров pkill отправляет сигнал 15 ( TERM ) идентификаторам процессов (PID) всех запущенных программ, соответствующих заданному имени. Например, чтобы корректно остановить все процессы Firefox, выполните:

 pkill -15 firefox

Команда возвращает 0 если хотя бы один запущенный процесс соответствует запрошенному имени. В противном случае код выхода1 Это может быть полезно при написании скриптов оболочки.

Чтобы отправить другой сигнал соответствующим процессам, вызовите команду pkill с опцией --signal , указав после неё числовое или символическое имя сигнала. Другой способ отправить сигнал — запустить pkill , указав после него имя или номер сигнала с дефисом ( - ).

Используйте команду kill -l для вывода списка всех доступных сигналов.

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

  • 1 ( HUP ): для перезагрузки процесса.
  • 9 ( KILL ): завершить процесс.
  • 15 ( TERM ): для корректной остановки процесса.

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

  • используя число (например, -1)
  • с префиксом «SIG» (например, -SIGHUP)
  • без префикса «SIG» (например, -HUP).

Например, чтобы перезагрузить процессы Nginx , выполните:

 pkill -HUP nginx

pkill использует регулярные выражения для сопоставления имён процессов. Всегда рекомендуется использовать команду pgrep для вывода списка соответствующих процессов перед отправкой им сигналов. Например, чтобы вывести список всех процессов, содержащих «ssh» в своём имени:

 1039 sshd 2257 ssh-agent 6850 ssh 31279 ssh-agent

Если вы хотите отправить сигнал только тем процессам, имена которых точно соответствуют шаблону поиска, вы должны использовать:

 pkill '^ssh$'

Символ вставки ( ^ ) соответствует началу строки, а символ доллара $ — концу.

По умолчанию pkill сопоставляет только имя процесса. При использовании параметра -f команда сопоставляется с полным списком аргументов. Если команда содержит пробелы, заключите её в кавычки целиком:

 pkill -9 -f "ping 8.8.8.8"

Используйте опцию -u , чтобы указать pkill , что нужно сопоставлять процессы, запущенные указанным пользователем:

 pkill -u mark

Чтобы указать нескольких пользователей, разделите их имена запятыми:

 pkill -u mark,danny

Вы также можете комбинировать параметры и шаблоны поиска. Например, чтобы отправить сигнал KILL всем процессам, запущенным под пользователем «mark» и содержащим в имени «gnome», введите:

 pkill -9 -u mark gnome

Чтобы отобразить только самые последние (самые старые) или самые последние (самые новые) запущенные процессы, используйте опцию -n (для самых новых) или -o (для самых старых).

Например, чтобы закрыть последний созданный экран :

 pkill -9 -n screen

Заключение

Команда pkill используется для отправки сигналов запущенным программам на основе различных критериев.

Для получения дополнительной информации о команде pkill посетите страницу руководства pkill или введите man pkill в терминале.

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

pkill терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *