Команды Linux · 3 min read · Dec 25, 2025

Учебник по команде pidof в Linux для начинающих (5 примеров)

Командная строка Linux предлагает множество утилит, которые работают с процессами. Команда pidof в Linux — это утилита, которая определяет идентификатор процесса (PID) одного или нескольких запущенных процессов. Иногда необходимо знать PID процесса, чтобы взаимодействовать с ним с помощью других команд; pidof упрощает задачу, позволяя вам искать процесс по его имени и быстро получать его связанный PID. pidof обычно включен в большинство дистрибутивов Linux и может использоваться из командной строки.

В этом учебнике мы обсудим основы pidof, используя несколько простых примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры здесь были протестированы на машине с Ubuntu 22.04 LTS.

Команда pidof в Linux

Как упоминалось выше, команда pidof позволяет вам найти идентификатор процесса запущенной программы. Следующий синтаксис:

pidof [options] command

А вот что говорит страница man об этом инструменте:

       Pidof находит идентификаторы процессов (pids) названных программ. Он выводит
       эти идентификаторы на стандартный вывод. Эта программа используется на некоторых системах
       в скриптах изменения уровня выполнения, особенно когда система имеет структуру
       rc, подобную System-V. В этом случае эти скрипты находятся в
       /etc/rc?.d, где ? — это уровень выполнения. Если в системе есть
       программа start-stop-daemon (8), она должна использоваться вместо этого.

Следующие примеры в формате вопросов и ответов должны дать вам хорошее представление о том, как работает этот инструмент.

Вопрос 1. Как использовать команду pidof?

Основное использование довольно простое — просто передайте имя программы в качестве входных данных для команды. Например:

pidof nano

Таким образом, вы можете увидеть, что команда вернула PID процесса nano в выводе.

Команда pidof

Вопрос 2. Как заставить pidof возвращать только один pid?

Иногда вы увидите, что команда pidof возвращает несколько pids. Например, попробуйте запустить команду pidof с ssh-демоном в качестве входных данных.

pidof sshd

Следующий вывод был получен на моей системе:

Несколько pid программы Linux

А вот как процессы перечисляются командой ps:

Тем не менее, вы можете заставить инструмент выдавать только один PID в выводе. Это можно сделать, используя опцию командной строки -s.

pidof -s sshd

Возврат одного идентификатора процесса

Вопрос 3. Как ограничить вывод на основе корневого каталога?

Если вы хотите, чтобы pidof возвращал только идентификаторы процессов, работающих с тем же корневым каталогом, используйте опцию командной строки -c.

pidof -c program_name

Обратите внимание, что эта опция игнорируется для пользователей, не обладающих правами root, так как они не смогут проверить текущий корневой каталог процессов, которыми они не владеют.

Вопрос 4. Как использовать pidof в случае бинарных файлов, хранящихся на сетевых файловых системах?

При работе с бинарными файлами, расположенными на сетевых файловых системах, таких как NFS, вы можете использовать опцию командной строки -n, чтобы заставить команду pidof избегать использования системного вызова stat.

pidof -n program_name

Обратите внимание, что страница man предлагает: “вместо использования этой опции переменная PIDOF_NETFS может быть установлена и экспортирована.”

Вопрос 5. Как работает pidof внутри?

Официальные документы говорят, что pidof на самом деле является той же программой, что и killall. Программа ведет себя в зависимости от имени, под которым она вызывается. Вот что точно говорит страница man:

       Когда pidof вызывается с полным путем к программе, для которой он должен
       найти pid, это достаточно безопасно. В противном случае возможно, что
       он возвращает pids запущенных программ, которые случайно имеют то же имя,
       что и программа, которую вы ищете, но на самом деле являются другими программами. Обратите внимание, что
       имя исполняемого файла запущенных процессов вычисляется с помощью read?
       link(2), поэтому символические ссылки на исполняемые файлы также будут совпадать.

Заключение

Команда pidof может быть полезна во многих ситуациях. Например, если вы хотите завершить процесс, PID которого вы не знаете, вы можете быстро использовать этот инструмент, чтобы найти идентификатор процесса, и процесс может быть завершен в кратчайшие сроки. Команда pidof не предлагает много опций, и мы уже обсудили большинство из них здесь. Для получения дополнительной информации перейдите на страницу man инструмента.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.