В этой статье рассматриваются основы команды Linux pkill
.
pkill
— это утилита командной строки, которая отправляет сигналы процессам выполняющейся программы на основе заданных критериев. Процессы могут быть указаны их полными или частичными именами, пользователем, запускающим процесс, или другими атрибутами.
Команда pkill
является частью пакета procps
(или procps-ng
), который предварительно установлен почти во всех дистрибутивах Linux. pkill
— это pkill
оболочка программы pgrep
которая выводит только список подходящих процессов.
Как использовать команду pkill
Синтаксис команды pkill
следующий:
pkill [OPTIONS] <PATTERN>
Соответствующий <PATTERN>
указывается с использованием расширенных регулярных выражений.
При вызове без какой-либо опции pkill
отправляет сигнал 15
( TERM
) идентификаторам PID всех запущенных программ, которые соответствуют заданному имени. Например, чтобы корректно остановить все процессы firefox, вы должны запустить:
pkill -9 firefox
Команда возвращает 0
если хотя бы один запущенный процесс совпадает с запрошенным именем. В противном случае код выхода — 1
. Это может быть полезно при написании сценариев оболочки.
Чтобы отправить другой сигнал согласованным процессам, вызовите команду pkill
с параметром --signal
, за которым следует числовое или символьное имя сигнала. Другой способ отправить сигнал — запустить pkill
за которым следует имя сигнала или номер с префиксом дефиса ( -
).
Используйте команду kill -l
чтобы 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
в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.