Команда Pgrep в Linux

Linux

В этой статье рассказывается об основах команды pgrep для Linux.

pgrep — это утилита командной строки, позволяющая найти идентификаторы процесса запущенной программы по заданным критериям. Это может быть полное или частичное имя процесса, пользователь, выполняющий процесс, или другие атрибуты.

Команда pgrep является частью пакета procps (или procps-ng), который предустановлен практически на все дистрибутивы Linux.

Как использовать команду pgrep

Синтаксис команды pgrep следующий:

pgrep [OPTIONS] <PATTERN>

Сопоставление <PATTERN> задается с помощью расширенных регулярных выражений.

При вызове без опции pgrep отображает PID всех запущенных программ, которые совпадают с заданным именем. Например, чтобы найти PID SSH-сервера, необходимо запустить его:

pgrep ssh

Если есть запущенные процессы с именами, совпадающими с «ssh», их PID будут отображаться на экране. Если совпадений нет, то вывод пустой.

Output
1039
2257
6850
31279

Команда возвращает 0, если хотя бы один запущенный процесс совпадает с запрошенным именем. В противном случае код выхода равен 1, что может быть полезно при использовании в скриптах оболочки.

pgrep печатает каждый соответствующий идентификатор процесса на новой строке. Опция -d позволяет указать другой разделитель. Например, если вы хотите использовать пробел в качестве разделителя, введите:

pgrep ssh -d' '
Output
1039 2257 6850 31279

Опция -l указывает pgrep показать имя процесса вместе с его идентификатором:

pgrep ssh -l

pgrep использует регулярные выражения для выполнения операции поиска и перечислит все процессы, содержащие в своих именах «ssh»:

Output
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

Если необходимо сопоставить только те процессы, имена которых точно совпадают с шаблоном поиска, то можно использовать этот шаблон:

pgrep '^ssh$' -l
Output
6850 ssh

Символ каретты (^) совпадает в начале строки, а доллар $ в конце.

По умолчанию pgrep совпадает только с именем процесса. При использовании опции -f команда совпадает с полным списком аргументов.

pgrep -f ssh

Используйте опцию -u, чтобы указать pgrep на отображение процессов, выполняемых данным пользователем :

pgrep -u root

Чтобы указать несколько пользователей, разделите их имена запятыми:

pgrep -u root,mark

Вы также можете комбинировать опции и шаблоны поиска. Например, чтобы распечатать все процессы и их названия, которые выполняются под пользователем «mark» и содержат в своих названиях «gnome»:

pgrep -l -u mark gnome

Чтобы отобразить только самые последние (самые старые) или самые последние (самые новые) запущенные процессы, используйте опцию -n (для самых новых) или -o (для самых старых).

Например, чтобы найти самый новый процесс, запущенный пользователем «mark», введите его:

pgrep -lnu mark

Как видно из примера выше, вы также можете комбинировать опции без пробела между ними и с одним тире.

Чтобы изменить соответствие, т.е. показать только те процессы, которые не соответствуют заданным критериям, используйте опцию -v.

Следующая команда выведет на печать все процессы, которые не выполняются и не запускаются пользователем «mark»:

pgrep -v -u mark

Опция -c указывает pgrep печатать только количество соответствующих процессов. Например, чтобы найти процессы, которые выполняются как пользовательские «mark», введите:

pgrep -c -u mark

Заключение

Команда pgrep используется для определения PID запущенной программы на основе различных критериев.

Для получения более подробной информации о команде pgrep посетите страницу man pgrep или введите man pgrep в вашем терминале.

Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.

Oleg Kozlov

QA Engineer, web-testing, Adobe illustration, Adobe Photoshop, Motion Design, Music, Games, Mac OS.

Оцените автора
Техносфера
Добавить комментарий