Утилита pgrep просматривает активные процессы в системе и выдает идентификаторы процессов,
атрибуты которых соответствуют указанным в командной строке критериям. Каждый идентификатор
процесса выдается в десятичном виде и отделяется от следующего идентификатора строкой-разделителем
(по умолчанию используется символ перевода строки). Для каждого атрибута пользователь может в
командной строке указать набор возможных значений через запятую. Например:
pgrep -G other,daemon
Эта команда выдает процессы, реальный идентификатор группы которых
имеет значение other ИЛИ daemon. Если указано несколько критериев поиска,
утилита pgrep ищет процессы, атрибуты которых соответствуют всем критериям. Например:
pgrep -G other,daemon -U root,daemon
Эта команда выдает процессы, у которых:
(реальный идентификатор группы - other ИЛИ daemon) И
(реальный идентификатор пользователя - root ИЛИ daemon)
Утилита pkill работает аналогично pgrep, но каждому соответствующему критериям поиска
процессу посылается сигнал, аналогично kill(1), вместо выдачи
идентификатора процесса. Имя или номер сигнала можно указать как первую опцию командной строки
pkill.
Задает строку-разделитель результатов, которая выдается между идентификаторами
соответствующих процессов. Если опция -d не указана, выдается символ новой строки.
Опцию -d можно задавать только утилите pgrep.
Шаблону (который задается как регулярное выражение) должна соответствовать
полная строка аргументов процесса (получается из поля pr_psargs в файле /proc/nnnnn/psinfo).
Если опция -f не указана, шаблону должно соответствовать только имя выполняемого
файла (которое получается из поля pr_fname файла /proc/nnnnn/psinfo).
Выбирает только процессы, идентификатор группы которых входит в заданный список.
Если список включает группу 0, это значение интерпретируется как идентификатор группы соответствующего
процесса pgrep или pkill.
Выбирает только процессы, реальный идентификатор группы которых входит в заданный список.
В качестве идентфикатора группы можно задавать либо ее имя, либо ее числовой идентификатор.
Выбирает только процессы, идентификатор проекта которых входит в заданный список.
Проекты можно задавать по имени или по числовому идентификатору проекта.
"Длинный" формат выдачи результатов. Для каждого выбранного процесса помимо идентификатора
выдает имя. Имя процесса получается из поля pr_psargs или pr_fname,
в зависимости от того, была ли указана опция -f (см. выше).
Опцию -l можно задавать только для утилиты pgrep.
Выбирает только процессы, идентификатор сеанса которых входит в заданный список. Если в список
входит идентификатор 0, это значение интерпретируется как идентификатор сеанса соответствующего
процесса pgrep или pkill.
Выбирает только процессы, связанные с одним из терминалов в указанном списке. Каждый терминал задается
как имя соответствующего специального файла устройства в каталоге /dev. Например,
term/a или pts/0.
Выбирает только процессы, идентификатор задачи которых входит в заданный список.
Если в список входит идентификатор 0, это значение интерпретируется как идентификатор задачи
соответствующего процесса pgrep или pkill.
Выбирает только процессы, эффективный идентификатор пользователя которых входит в указанный список.
В качестве идентификатора пользователя можно задавать регистрационное имя или числовой
идентификатор.
Выбирает только процессы, реальный идентификатор пользователя которых входит в указанный список.
В качестве идентификатора пользователя можно задавать регистрационное имя или числовой
идентификатор.
Выбирает только процессы, строка аргументов или имя выполняемого файла которых
точно соответствует заданному шаблону. Соответствие шаблону считается точным,
когда все символы в строке аргументов процесса или имени выполняемого файла
соответствуют шаблону.
Задает сигнал, который будет послан каждому из выбранных процессов.
Если сигнал не указан, посылается сигнал SIGTERM.
В качестве значения сигнала можно задавать одно из символьных имен,
которые определены на странице справочного руководства
signal(3HEAD), но без префикса SIG,
или соответствующий номер сигнала в десятичном виде. Опция
-сигнал может передаваться только как первая опция утилиты pkill.
Задает расширенное регулярное выражение (Extended Regular Expression - ERE), которому
должно соответствовать имя выполняемого файла или вся строка аргументов процесса.
Полное описание синтаксиса расширенных регулярных выражений см. на странице справочного
руководства regex(5).
Обе утилиты сопоставляют с шаблоном в виде расширенного регулярного выражения
значения в полях pr_fname или pr_psargs файлов /proc/nnnnn/psinfo.
Длина этих строк ограничена в соответствии с определениями в файле <sys/procfs.h>.
Шаблоны, которым могут соответствовать более длинные строки, могут не дать
при выборе требуемого набора процессов.
Если аргумент шаблон содержит метасимволы расширенных регулярных выражений,
являющиеся также метасимволами командного интерпретатора, модет понадобиться
замаскировать шаблон, взяв его в соответствующие кавычки.
Процессы, завершенные, но еще не удаленные из таблицы процессов (defunct), никогда
не выбираются утилитами pgrep и pkill.
Текущий процесс pgrep или pkill никогда не учитывает себя при выборе.