Команда Pgrep в Linux

В этой статье рассматриваются основы команды Linux pgrep .

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

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

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

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

pgrep [OPTIONS] <PATTERN>

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

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

pgrep ssh

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

1039
2257
6850
31279

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

Если вы хотите отправлять сигналы согласованным процессам, используйте pkill . Эта команда представляет собой оболочку для pkill и использует те же параметры и сопоставление с образцом.

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

pgrep ssh -d' '
1039 2257 6850 31279

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

pgrep ssh -l

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

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

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

pgrep '^ssh$' -l
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 печатать только количество подходящих процессов. Например, чтобы найти процессы, которые запускаются как пользовательская «отметка», введите:

pgrep -c -u mark

Выводы

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

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

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

Оставьте комментарий