pidof
— это утилита командной строки, которая позволяет найти идентификатор процесса запущенной программы.
В этой статье мы объясним, как использовать команду Linux pidof
.
Как использовать команду pidof
Существуют разные реализации pidof
для дистрибутивов на основе Red Hat и Debian. В дистрибутивах Red Hat команда pidof
является частью пакета procps-ng
, а в Debian — частью sysvinit-utils
. Мы рассмотрим параметры, общие для обеих реализаций.
Синтаксис команды pidof
следующий:
pidof [OPTIONS] PROGRAM_NAME
Команда принимает в качестве аргументов ноль или более имен, но обычно в pidof
передается только одно имя.
При вызове без какой-либо опции, pidof
распечатает PID всех запущенных программ, которые соответствуют заданному имени. Например, чтобы найти PID SSH-сервера, вы должны запустить:
pidof sshd
Если есть запущенные процессы с именами, соответствующими sshd
, их PID будут отображаться на экране. Если совпадений не найдено, вывод будет пустым.
4382 4368 811
pidof
возвращает 0
если хотя бы одна запущенная программа совпадает с запрошенным именем. В противном случае код выхода — 1
. Это может быть полезно при написании сценариев оболочки.
Чтобы быть уверенным, что отображаются только PID программы, которую вы ищете, используйте в качестве аргумента полный путь к программе. Например, если у вас есть две запущенные программы с одинаковым именем, расположенные в двух разных каталогах, pidof
покажет PID обеих запущенных программ.
По умолчанию отображаются все PID соответствующих запущенных программ. Используйте параметр -s
чтобы заставить pidof
отображать только один PID:
pidof -s program_name
Параметр -o
позволяет исключить процесс с заданным PID из вывода команды:
pidof -o pid program_name
Когда pidof
вызывается с параметром -o
, вы можете использовать специальный PID с именем %PPID
который представляет вызывающую оболочку или сценарий оболочки.
Чтобы вернуть только PID процессов, работающих в одном корневом каталоге, используйте параметр -c
.
Этот параметр работает только при pidof
от имени пользователя root или sudo
:
pidof -c pid program_name
Пример использования команды pidof
В следующем примере показано, как использовать команду pidof
в сочетании с командой kill
для завершения программы.
Допустим, браузер Firefox перестал отвечать, и вам нужно убить процессы Firefox. Сначала найдите PID с помощью pidof
:
pidof firefox
Команда распечатает все процессы Firefox:
2551 2514 1963 1856 1771
Как только вы узнаете, что Firefox обрабатывает PID, отправьте сигнал SEGTERM
чтобы завершить их все:
sudo kill -9 2551 2514 1963 1856 1771
Вы также можете использовать выражение подстановки команд $(...)
, чтобы завершить программу одной командой:
sudo kill -9 $(pidof firefox)
Выводы
Команда pidof
используется для определения идентификаторов PID конкретной запущенной программы.
pidof
— это простая команда, у которой не так много параметров. Обычно вы вызываете pidof
только с именем программы, которую ищете.
Добавить комментарий