PGREP(1) Команди користувача PGREP(1)

pgrep, pkill, pwait — пошук, надсилання сигналів процесам або очікування на завершення роботи процесів на основі даних щодо їхньої назви та інших атрибутів

pgrep [параметри] взірець
pkill [параметри] взірець
pwait [параметри] взірець

pgrep виконує пошук серед поточних запущених процесів і виводить список ідентифікаторів процесів, які відповідають критерію вибору до stdout. Виконуватися мають усі критерії. Наприклад,
$ pgrep -u root sshd

покаже список процесів, які мають назву sshd і належать root. З іншого боку,

$ pgrep -u root,daemon

виведе список процесів, власником яких є root або daemon.

pkill надішле вказаний сигнал (типово SIGTERM) кожному процесу, замість виведення списку процесів до stdout.

pwait чекатиме на усі процеси замість виведення їхнього списку до stdout.

-сигнал
--signal сигнал
Визначає сигнал для надсилання кожному відповідному процесу. Для визначення сигналу можна скористатися цифровим значенням або символічною назвою сигналу. (лише для pkill.)
-c, --count
Придушити звичайне виведення. Замість цього, вивести кількість відповідних процесів. Якщо не вдасться знайти нічого, наприклад, буде повернуто нульове значення, програма поверне ненульове значення помилки. Зауважте, що для pkill і pwait кількість є кількістю відповідних процесів, а не кількістю процесів, яким було успішно надіслано сигнал, або кількість процесів, на які очікувала програма.
-d, --delimiter роздільник
Встановлює рядок, що використовуватиметься для відокремлення ідентифікаторів процесів у виведених даних (типовим роздільником є символ розриву рядка). (Лише pgrep.)
-e, --echo
Показати назву і PID процесів, роботу яких буде завершено (лише pkill).
-f, --full
Зазвичай, відповідність взірця встановлюється лише для назви процесу. Якщо використано -f, відповідність встановлюється за цілим рядком команди.
-g, --pgroup група процесів,...
Встановлювати відповідність процесів лише для вказаного списку ідентифікаторів груп. Група процесів 0 відповідає власній групі процесів pgrep, pkill або pwait.
-G, --group gid,...
Встановлювати відповідність процесів зі списку справжніх ідентифікаторів груп. Можна використовувати цифрове або символічне значення ідентифікатора.
-i, --ignore-case
Виконувати пошук процесів без врахування регістру символів.
-l, --list-name
Вивести список назв процесів, а також ідентифікаторів процесів. (Лише pgrep.)
-a, --list-full
Вивести список рядків команд повністю, а також ідентифікаторів процесів. (Лише pgrep.)
-n, --newest
Вибрати лише найновіші (запущені якомога пізніше) відповідні процеси.
-o, --oldest
Вибрати лише найдавніші (запущені якомога раніше) відповідні процеси.
-O, --older секунди
Вибрати процеси, які є старішими за вказану кількість секунд.
-P, --parent ppid,...
Встановлювати відповідність лише тих процесів, які мають батьківські процеси зі вказаного списку.
-s, --session sid,...
Встановлювати відповідність лише тих процесів, які мають ідентифікатори сеансів процесів зі вказаного списку. Ідентифікатор 0 відповідає ідентифікаторам сеансів самих програм pgrep, pkill або pwait.
-t, --terminal термінал,...
Встановлювати відповідність лише процесів із терміналом керування із вказаного списку. Назву термінала слід вказувати без префікса «/dev/».
-u, --euid euid,...
Встановлювати відповідність процесів зі списку ідентифікаторів ефективних користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
-U, --uid uid,...
Встановлювати відповідність процесів зі списку справжніх ідентифікаторів користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
-v, --inverse
Інвертує відповідність. Зазвичай, цей параметр використовується у контексті pgrep або pwait. У контексті pkill скорочену форму параметра вимкнено для того, щоб запобігти випадковому використанню цього параметра.
-w, --lightweight
Показує усіх ідентифікатори потоків обробки, замість ідентифікаторів, у контексті pgrep або pwait. У контексті pkill цей параметр вимкнено.
-x, --exact
Встановлювати відповідність лише процесів, назви яких (або рядки команд, якщо вказано параметр -f) точно відповідає взірцю.
-F, --pidfile файл
Прочитати PID з файла. Ймовірно, цей параметр корисніший для pkill або pwait, а не для pgrep.
-L, --logpidfile
Завершувати роботу повідомленням про помилку, якщо pid-файл (див. -F) не заблоковано.
-r, --runstates D,R,S,Z,...
Виконати пошук лише тих процесів, які відповідають вказаному значенню стану процесу.
--ns pid
Встановлювати відповідність процесів, які належать до одного простору назв. Для встановлення відповідності для процесів інших користувачів програму має бути запущено від імені користувача root. Див. довідку щодо --nslist, щоб дізнатися про те, як обмежити перелік відповідних просторів назв.
--nslist назва,...
Встановлювати відповідність лише для вказаних просторів назв. Можливі простори назв: ipc, mnt, net, pid, user, uts.
-q, --queue значення
Скористайтеся kill(2) замість sigqueue(3), і аргумент значення, який використовується для задання цілого значення, буде надіслано разом із сигналом. Якщо у процесі, який його отримає, встановлено обробки сигналу, який використовує прапорець SA_SIGINFO sigaction(2), процес зможе отримати ці дані за допомогою поля si_value структури siginfo_t.
-V, --version
Вивести дані щодо версії і завершити роботу.
-h, --help
Показати довідкові дані і завершити роботу.

взірець
Вказує розширений формальний вираз для відповідності за назвами процесів або рядками команд.

Приклад 1: знайти ідентифікатор процесу фонової служби named:
$ 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 і pwait також має бути один або декілька процесів, яким успішно надіслано сигнал або які перебувають у стані очікування.
1
Не знайдено жодного відповідного процесу або жодному зі знайдених процесів не вдалося надіслати сигнал.
2
Синтаксична помилка у рядку команди.
3
Критична помилка: вичерпано пам’ять тощо.

Назву процесу, що використовується для встановлення відповідності, обмежено 15 символами, які виводить /proc/pid/stat. Для встановлення відповідності за цілим командним рядком, /proc/pid/cmdline, скористайтеся параметром -f.

Запущений процес pgrep, pkill або pwait ніколи не повідомлятиметься самим собою як відповідник.

Не можна одночасно використовувати параметри -n, -o та -v одночасно. Повідомте авторам, якщо вам потрібне таке поєднання.

Програма повідомляє про щезлі процеси.

ps(1), regex(7), signal(7), sigqueue(3), killall(1), skill(1), kill(1), kill(2)

Kjetil Torgrim Homme

Про вади, будь ласка, повідомляйте на адресу procps@freelists.org
4 червня 2020 року procps-ng