Как найти идентификаторы процессов с помощью команды Pgrep в Linux

12 set 2022 2 min di lettura
Как найти идентификаторы процессов с помощью команды Pgrep в Linux
Indice dei contenuti

Введение

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
Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.