pgrep, pkill, pidwait - поиск, отправка сигнала или ожидание процессов на основе имени и других атрибутов
SYNOPSIS
pgrep [options] pattern
pkill [options] pattern
pidwait [options] pattern
DESCRIPTION
pgrep просматривает текущие процессы и выводит в stdout идентификаторы процессов, соответствующие критериям выбора. Все критерии должны совпадать. Например,
$ pgrep -u root sshd
отобразит только процессы с именем sshd И принадлежащие пользователю root. С другой стороны,
$ pgrep -u root,daemon
отобразит процессы, принадлежащие пользователю root ИЛИ daemon.
pkill отправляет указанный сигнал (по умолчанию SIGTERM) каждому процессу вместо вывода их в stdout.
pidwait ожидает каждый процесс вместо вывода их в stdout.
OPTIONS
-signal
--signal signal
Определяет сигнал, который будет отправлен каждому совпадающему процессу. Можно использовать либо числовое, либо символическое имя сигнала. В режиме pgrep или pidwait только длинная опция может использоваться и не имеет эффекта, если не используется в сочетании с --require-handler, чтобы фильтровать процессы с обработчиком сигнала, определенным для конкретного сигнала.
-c, --count
Подавляет обычный вывод; вместо этого выводит количество совпадающих процессов. Когда count не соответствует чему-либо, например, возвращает ноль, команда возвращает ненулевое значение.
-d, --delimiter delimiter
Устанавливает строку, используемую для разделения каждого идентификатора процесса в выводе (по умолчанию - новая строка). (Только для pgrep).
-e, --echo
Отображает имя и PID процесса, который будет завершен. (Только для pkill).
-f, --full
Обычно шаблон сопоставляется только с именем процесса. Когда установлен параметр -f, используется полная командная строка.
-g, --pgroup pgrp,...
Сопоставляет только процессы, находящиеся в указанных идентификаторах группы процессов. Группа процессов 0 преобразуется в собственную группу процессов pgrep, pkill или pidwait.
-G, --group gid,...
Сопоставляет только процессы, у которых указанный идентификатор реальной группы. Можно использовать как числовое, так и символическое значение.
-i, --ignore-case
Выполняет сопоставление процессов без учета регистра.
-l, --list-name
Выводит имя процесса, а также идентификатор процесса. (Только для pgrep).
-a, --list-full
Выводит полную командную строку, а также идентификатор процесса. (Только для pgrep).
-n, --newest
Выбирает только самый новый (последний запущенный) из совпадающих процессов.
-o, --oldest
Выбирает только самый старый (первый запущенный) из совпадающих процессов.
-O, --older secs
Выбирает процессы, старше указанного количества секунд.
-P, --parent ppid,...
Сопоставляет только процессы, родительский идентификатор процесса которых указан.
-s, --session sid,...
Сопоставлять только процессы, идентификатор сеанса которых указан в списке. Идентификатор сеанса 0 преобразуется в идентификатор сеанса, используемый pgrep, pkill или pidwait.
-t, --terminal term,...
Сопоставлять только процессы, управляющий терминал которых указан в списке. Имя терминала должно быть указано без префикса "/dev/".
-u, --euid euid,...
Сопоставлять только процессы, идентификатор эффективного пользователя которых указан в списке. Можно использовать как числовое, так и символьное значение.
-U, --uid uid,...
Сопоставлять только процессы, идентификатор реального пользователя которых указан в списке. Можно использовать как числовое, так и символьное значение.
-v, --inverse
Инвертировать сопоставление. Этот параметр обычно используется в контексте pgrep или pidwait. В контексте pkill этот короткий параметр отключен, чтобы избежать случайного использования.
-w, --lightweight
В контексте pgrep или pidwait отображать все идентификаторы потоков вместо идентификаторов процессов. В контексте pkill этот параметр отключен.
-x, --exact
Сопоставлять только процессы, имена (или строки команд, если указан параметр -f) которых точно соответствуют шаблону.
-F, --pidfile file
Читать идентификаторы процессов из файла. Этот параметр более полезен для pkill или pidwait, чем для pgrep.
-L, --logpidfile
Выдавать ошибку, если файл pidfile (см. -F) не заблокирован.
-r, --runstates D,R,S,Z,...
Сопоставлять только процессы, состояние которых соответствует указанному.
-A, --ignore-ancestors
Игнорировать всех предков pgrep, pkill или pidwait. Например, это может быть полезно при повышении привилегий с помощью sudo или аналогичных инструментов.
-H, --require-handler
Сопоставлять только процессы, для которых в пространстве пользователя присутствует обработчик сигнала, который будет отправлен.
--cgroup name,...
Сопоставлять по указанному имени контрольной группы (cgroup) v2. См. cgroups(8).
--ns pid
Сопоставлять процессы, принадлежащие одному и тому же пространству имен. Требуется, чтобы для сопоставления процессов других пользователей выполняться с правами root. См. --nslist, чтобы ограничить, какие пространства имен сопоставлять.
--nslist name,...
Сопоставлять только указанные пространства имен. Доступные пространства имен: ipc, mnt, net, pid, user, uts.
-q, --queue value
Использовать sigqueue(3) вместо [kill]({filename}../../kill)(2), и аргумент value используется для указания целого числа, которое будет отправлено вместе с сигналом. Если принимающий процесс установил обработчик для этого сигнала с помощью флага SA_SIGINFO в sigaction(2), то он может получить эти данные в поле si_value структуры siginfo_t.
-V, --version
Отобразить информацию о версии и выйти.
-h, --help
Отобразить справку и выйти.
ОПЕРАНДЫ
pattern
Указывает расширенное регулярное выражение для сопоставления с именами процессов или строками команд.
ПРИМЕРЫ
Пример 1: Найти идентификатор процесса с именем daemon:
$ pgrep -u root named
Пример 2: Заставить syslog перезагрузить свой файл конфигурации:
$ pkill -HUP syslogd
Пример 3: Отобразить подробную информацию обо всех процессах xterm:
$ ps -fp $(pgrep -d, -x xterm)
Пример 4: Заставить все процессы chrome работать с более низким приоритетом:
$ renice +4 $(pgrep chrome)
СТАТУС ВЫХОДА
0 Одно или несколько процессов соответствуют критериям. Для pkill и pidwait одно или несколько процессов также должны быть успешно сигнализированы или ожидаемы.
1 Ни один процесс не соответствует критериям или ни один из них не может быть сигнализирован.
2 Синтаксическая ошибка в командной строке.
3 Фатальная ошибка: не хватает памяти и т. д.
ЗАМЕТКИ
Имя процесса, используемое для сопоставления, ограничено 15 символами, представленными в выводе /proc/pid/stat. Используйте опцию -f для сопоставления с полной командной строкой, /proc/pid/cmdline. Потоки могут иметь другое имя процесса, чем родительский процесс, но будут иметь одну и ту же командную строку.
Запущенный процесс pgrep, pkill или pidwait никогда не будет сообщать о себе как о совпадении.
Опция -O --older будет молчаливо завершаться неудачей, если /proc смонтирован с опцией subset=pid.
ОШИБКИ
Опции -n, -o и -v не могут использоваться вместе. Дайте мне знать, если вам это нужно.
Завершенные процессы сообщаются.
pidwait требует системный вызов pidfd_open(2), который впервые появился в Linux 5.3.
ССЫЛКИ
ps(1), regex(7), signal(7), sigqueue(3), killall(1), skill(1), kill(1), kill(2), cgroups(8).
АВТОР
Кьетил Торгрим Хомме
СООБЩЕНИЕ ОБ ОШИБКАХ
Пожалуйста, отправляйте сообщения об ошибках по адресу _