
В этой статье рассматриваются основы команды pgrep в Linux.
pgrep — это утилита командной строки, которая позволяет найти идентификаторы процессов запущенных программ по заданным критериям. Это может быть полное или частичное имя процесса, пользователь, запустивший процесс, или другие атрибуты.
Команда pgrep является частью пакета procps (или procps-ng ), который предустановлен практически во всех дистрибутивах Linux.
Как использовать команду pgrep
Синтаксис команды pgrep следующий:
pgrep [ OPTIONS ]
Соответствующий указывается с помощью расширенных регулярных выражений.
При запуске без параметров 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 вывести только количество соответствующих процессов. Например, чтобы найти процессы, запущенные от имени пользователя «mark», введите:
pgrep -c -u mark
Заключение
Команда pgrep используется для определения PID запущенной программы на основе различных критериев.
Для получения дополнительной информации о команде pgrep посетите страницу руководства pgrep или введите man pgrep в терминале.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства