pidof утилита командной строки, которая позволяет вам найти идентификатор процесса работающей программы
В этой статье мы объясним, как использовать команду pidof в Linux.
Существуют разные реализации 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 для принудительного отображения только одного 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 в сочетании с командой 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 только с названием программы, которую вы ищете.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Посылает не SIGTERM , а SIGKILL и аварийно завершает приложение. Для корректного завершения лучше посылать SIGTERM
kill -15