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

НАЗВА

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

КОРОТКИЙ ОПИС

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

ОПИС

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

$ pgrep -u root sshd

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

$ pgrep -u root,daemon

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

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

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

ПАРАМЕТРИ

-сигнал
Визначає сигнал, який слід надіслати кожному відповідному процесу. Можна скористатися числовим значенням або символічною назвою сигналу. У режимі pgrep або pidwait можна використовувати лише довгу версію параметра. У цьому режимі параметр не працює, якщо не використано у поєднанні із --require-handler для фільтрування процесів із наявним обробником певного сигналу у просторі користувача.
Придушити звичайне виведення. Замість цього, вивести кількість відповідних процесів. Якщо не вдасться знайти нічого, наприклад, буде повернуто нульове значення, програма поверне ненульове значення помилки. Зауважте, що для pkill і pidwait кількість є кількістю відповідних процесів, а не кількістю процесів, яким було успішно надіслано сигнал, або кількість процесів, на які очікувала програма.
Встановлює рядок, що використовуватиметься для відокремлення ідентифікаторів процесів у виведених даних (типовим роздільником є символ розриву рядка). (Лише pgrep.)
Показати назву і PID процесів, роботу яких буде завершено (лише pkill).
Зазвичай, відповідність взірця встановлюється лише для назви процесу. Якщо використано -f, відповідність встановлюється за цілим рядком команди.
Встановлювати відповідність процесів лише для вказаного списку ідентифікаторів груп. Група процесів 0 відповідає власній групі процесів pgrep, pkill або pidwait.
Встановлювати відповідність процесів зі списку справжніх ідентифікаторів груп. Можна використовувати цифрове або символічне значення ідентифікатора.
Виконувати пошук процесів без врахування регістру символів.
Вивести список назв процесів, а також ідентифікаторів процесів. (Лише pgrep.)
Вивести список рядків команд повністю, а також ідентифікаторів процесів. (Лише pgrep.)
Вибрати лише найновіші (запущені якомога пізніше) відповідні процеси.
Вибрати лише найдавніші (запущені якомога раніше) відповідні процеси.
Вибрати процеси, які є старішими за вказану кількість секунд.
Встановлювати відповідність лише тих процесів, які мають батьківські процеси зі вказаного списку.
Встановлювати відповідність лише тих процесів, які мають ідентифікатори сеансів процесів зі вказаного списку. Ідентифікатор 0 відповідає ідентифікаторам сеансів самих програм pgrep, pkill або pidwait.
Встановлювати відповідність лише процесів із терміналом керування із вказаного списку. Назву термінала слід вказувати без префікса «/dev/».
Встановлювати відповідність процесів зі списку ідентифікаторів ефективних користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
Встановлювати відповідність процесів зі списку справжніх ідентифікаторів користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
Інвертує відповідність. Зазвичай, цей параметр використовується у контексті pgrep або pidwait. У контексті pkill скорочену форму параметра вимкнено для того, щоб запобігти випадковому використанню цього параметра.
Показує усіх ідентифікатори потоків обробки, замість ідентифікаторів, у контексті pgrep або pidwait. У контексті pkill цей параметр вимкнено.
Встановлювати відповідність лише процесів, назви яких (або рядки команд, якщо вказано параметр -f) точно відповідає взірцю.
Прочитати PID з файла. Ймовірно, цей параметр корисніший для pkill або pidwait, а не для pgrep.
Завершувати роботу повідомленням про помилку, якщо pid-файл (див. -F) не заблоковано.
Виконати пошук лише тих процесів, які відповідають вказаному значенню стану процесу.
Ігнорувати усі попередники pgrep, pkill та pidwait. Наприклад, це може бути корисним при розширенні прав доступу за допомогою sudo або подібних інструментів.
Встановлювати відповідність лише тих процесів, які мають обробник сигналу, який має бути надіслано, у просторі користувача.
Встановити відповідність наданій назві групи керування (cgroup) у версії 2. Див. cgroups(8)
Встановлювати відповідність процесів, які належать до одного простору назв. Для встановлення відповідності для процесів інших користувачів програму має бути запущено від імені користувача root. Див. довідку щодо --nslist, щоб дізнатися про те, як обмежити перелік відповідних просторів назв.
Встановлювати відповідність лише для вказаних просторів назв. Можливі простори назв: ipc, mnt, net, pid, user, uts.
Скористайтеся kill(2) замість sigqueue(3), і аргумент значення, який використовується для задання цілого значення, буде надіслано разом із сигналом. Якщо у процесі, який його отримає, встановлено обробки сигналу, який використовує прапорець SA_SIGINFO sigaction(2), процес зможе отримати ці дані за допомогою поля si_value структури siginfo_t.
Вивести дані щодо версії і завершити роботу.
Показати довідкові дані і завершити роботу.

ОПЕРАНДИ

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

ПРИКЛАДИ

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

ЗАУВАЖЕННЯ

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

Запущений процес 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).

АВТОР

Kjetil Torgrim Homme

Як надіслати звіт про вади

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

16 січня 2023 року procps-ng