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.
ПАРАМЕТРИ¶
- -сигнал
- --signal сигнал
- Визначає сигнал для надсилання кожному відповідному процесу. Для визначення сигналу можна скористатися цифровим значенням або символічною назвою сигналу. (лише для pkill.)
- -c, --count
- Придушити звичайне виведення. Замість цього, вивести кількість відповідних процесів. Якщо не вдасться знайти нічого, наприклад, буде повернуто нульове значення, програма поверне ненульове значення помилки. Зауважте, що для pkill і pidwait кількість є кількістю відповідних процесів, а не кількістю процесів, яким було успішно надіслано сигнал, або кількість процесів, на які очікувала програма.
- -d, --delimiter роздільник
- Встановлює рядок, що використовуватиметься для відокремлення ідентифікаторів процесів у виведених даних (типовим роздільником є символ розриву рядка). (Лише pgrep.)
- -e, --echo
- Показати назву і PID процесів, роботу яких буде завершено (лише pkill).
- -f, --full
- Зазвичай, відповідність взірця встановлюється лише для назви процесу. Якщо використано -f, відповідність встановлюється за цілим рядком команди.
- -g, --pgroup група процесів,...
- Встановлювати відповідність процесів лише для вказаного списку ідентифікаторів груп. Група процесів 0 відповідає власній групі процесів pgrep, pkill або pidwait.
- -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 або pidwait.
- -t, --terminal термінал,...
- Встановлювати відповідність лише процесів із терміналом керування із вказаного списку. Назву термінала слід вказувати без префікса «/dev/».
- -u, --euid euid,...
- Встановлювати відповідність процесів зі списку ідентифікаторів ефективних користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
- -U, --uid uid,...
- Встановлювати відповідність процесів зі списку справжніх ідентифікаторів користувачів. Можна використовувати цифрове або символічне значення ідентифікатора.
- -v, --inverse
- Інвертує відповідність. Зазвичай, цей параметр використовується у контексті pgrep або pidwait. У контексті pkill скорочену форму параметра вимкнено для того, щоб запобігти випадковому використанню цього параметра.
- -w, --lightweight
- Показує усіх ідентифікатори потоків обробки, замість ідентифікаторів, у контексті pgrep або pidwait. У контексті pkill цей параметр вимкнено.
- -x, --exact
- Встановлювати відповідність лише процесів, назви яких (або рядки команд, якщо вказано параметр -f) точно відповідає взірцю.
- -F, --pidfile файл
- Прочитати PID з файла. Ймовірно, цей параметр корисніший для pkill або pidwait, а не для pgrep.
- -L, --logpidfile
- Завершувати роботу повідомленням про помилку, якщо pid-файл (див. -F) не заблоковано.
- -r, --runstates D,R,S,Z,...
- Виконати пошук лише тих процесів, які відповідають вказаному значенню стану процесу.
- -A, --ignore-ancestors
- Ігнорувати усі попередники pgrep, pkill та pidwait. Наприклад, це може бути корисним при розширенні прав доступу за допомогою sudo або подібних інструментів.
- --cgroup назва,...
- Встановити відповідність наданій назві групи керування (cgroup) у версії 2. Див. cgroups(8)
- --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 і 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)
АВТОР¶
Як надіслати звіт про вади¶
Про вади, будь ласка, повідомляйте на адресу procps@freelists.org
31 серпня 2022 року | procps-ng |