Введение
pgrep
— это утилита командной строки, которая позволяет вам находить идентификаторы процессов запущенной программы на основе определенных критериев. Это может быть полное или частичное имя процесса, пользователь, запускающий процесс, или другие атрибуты.
Команда pgrep
является частью пакета procps
(или procps-ng
), который предустановлен почти во всех дистрибутивах Linux.
В этой статье рассматриваются основы команды Linux pgrep
.
Используйте команду pgrep
Синтаксис команды pgrep
следующий:
pgrep [OPTIONS] <PATTERN>
Соответствие <PATTERN>
указывается с помощью расширенных регулярных выражений.
При вызове без каких-либо параметров pgrep
отображает PID всех запущенных программ, которые соответствуют указанному имени. Например, чтобы найти PID сервера SSH, запустите:
pgrep ssh
Если есть какие-либо запущенные процессы с именами, соответствующими «ssh», их PID будут отображаться на экране. Если совпадений не найдено, вывод пустой.
947
1089
1104
4925
4926
Команда возвращает 0
, когда хотя бы один запущенный процесс соответствует запрошенному имени. В противном случае код выхода равен 1
. Это может быть полезно при использовании в сценариях оболочки.
pgrep
печатает каждый соответствующий идентификатор процесса в новой строке. Параметр -d
позволяет указать другой разделитель. Например, если вы хотите использовать пробел в качестве разделителя, введите:
pgrep ssh -d' '
947 1089 1104 4930 4954
Параметр -l
позволяет pgrep
отображать имя процесса вместе с его идентификатором:
pgrep ssh -l
pgrep
использует регулярные выражения для выполнения операции поиска и перечислит все процессы, имена которых содержат «ssh»:
947 sshd
1089 ssh-agent
1104 sshd
Если вы хотите сопоставить только процессы, имена которых в точности совпадают с шаблоном поиска, вы должны использовать:
pgrep '^sshd$' -l
947 sshd
1104 sshd
Символ вставки ( ^
) соответствует началу строки, а знак доллара $
— в конце.
По умолчанию pgrep
соответствует только имени процесса. При использовании параметра -f
команда соответствует полным спискам аргументов.
pgrep -f ssh
Используйте параметр -u
для просмотра процессов, запущенных конкретным пользователем:
pgrep -u root
Чтобы указать нескольких пользователей, разделите их имена запятыми:
pgrep -u root,alice
Вы также можете комбинировать параметры поиска и шаблоны. Например, чтобы вывести все процессы и их имена, которые выполняются под пользователем «alice» и содержат «gnome» в своих именах, введите:
pgrep -l -u alice gnome
Чтобы отобразить только самые старые или самые последние запущенные процессы, используйте параметр -n
(для самого последнего) или -o
(для самого старого).
Например, чтобы найти самый последний процесс, запущенный пользователем «Алиса», введите:
pgrep -lnu alice
Как видно из примера выше, можно также комбинировать варианты без пробела между ними и с одним тире.
Чтобы отменить соответствие, то есть показать только процессы, не соответствующие указанным критериям, используйте параметр -v
. Следующая команда напечатает все процессы, которые не запущены пользователем «alice»:
pgrep -v -u alice
Параметр -c
указывает pgrep
печатать только количество совпадающих заданий. Например, чтобы найти процессы, работающие от имени пользователя «Алиса», введите:
pgrep -c -u alice
Вывод
Команда pgrep
используется для определения PID запущенной программы на основе различных критериев.
Для получения дополнительной информации о команде pgrep
посетите справочную страницу pgrep или введите man pgrep
в своем терминале:
man pgrep