Введение
pidof
— это утилита командной строки, которая позволяет найти идентификатор процесса запущенной программы.
В этой статье мы объясним, как использовать команду pidof
в Linux.
Как использовать команду 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 будут отображаться на экране. Если совпадений не найдено, вывод будет пустым.
3180 664
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
.
Эта опция работает только как root или как пользователь sudo
:
pidof -c pid program_name
Пример использования команды pidof
В следующем примере показано, как использовать команду pidof
в сочетании с командой kill для kill
программы.
Предположим, что браузер Firefox не ответил, и процессы Firefox необходимо остановить. Сначала найдите PID с помощью pidof
:
pidof firefox
Команда напечатает все процессы Firefox:
2661 2534 1134 1476
Как только вы узнаете процессы PID Firefox, отправьте сигнал SEGTERM
, чтобы уничтожить их все:
sudo kill -9 2661 2534 1134 1476
Вы также можете использовать выражение подстановки команд $(...)
, чтобы завершить программу одной командой:
sudo kill -9 $(pidof firefox)
Вывод
Команда pidof
используется для получения идентификаторов PID конкретной запущенной программы.
pidof
— это простая команда, у которой не так много параметров. Обычно вы вызываете pidof
только с именем искомой программы.