Команда Pidof в Linux

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 только с именем программы, которую ищете.

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

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