НАЗВА
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
сигнал
- Визначає
сигнал,
який слід
надіслати
кожному
відповідному
процесу.
Можна
скористатися
числовим
значенням
або
символічною
назвою
сигналу. У
режимі pgrep
або pidwait
можна
використовувати
лише довгу
версію
параметра.
У цьому
режимі
параметр
не працює,
якщо не
використано
у
поєднанні
із --require-handler для
фільтрування
процесів
із наявним
обробником
певного
сигналу у
просторі
користувача.
- -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 або
подібних
інструментів.
- -H,
--require-handler
- Встановлювати
відповідність
лише тих
процесів,
які мають
обробник
сигналу,
який має
бути
надіслано,
у просторі
користувача.
- --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).