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)
Kjetil Torgrim Homme
Про вади,
будь ласка,
повідомляйте
на адресу
[email protected]