В Linux команда pidof
используется для определения PID конкретной запущенной программы. Утилита обычно запускается только с именем программы.
Содержание
Синтаксис
$ pidof [параметры] [программа [...]]
Параметры
-s, --single-shot
Вернуть только один PID
-c, --check-root
Пренебречь процессами с другим root
-q
Тихий режим, установить только код выхода
-w, --with-workers
Показать также рабочие процессы ядра
-x
Также найти оболочки, выполняющие названные сценарии
-o, --omit-pid
Пренебречь процессами с PID
-t, --lightweight
Список тем тоже
-S, --separator SEP
Использовать SEP в качестве разделителя между PID-ми
-h, --help
Отобразить эту справку и выйти
-V, --version
Вывести информацию о версии и выйти
Использование в Linux команды pidof
Запуск утилиты без параметров
Команда принимает ноль или более имён в качестве аргументов, но обычно передаётся только одно имя pidof
:
oleg@mobile:~:$ pidof sublime_text
110171
oleg@mobile:~:$
При вызове без какой-либо опции утилита будет печатать PID всех запущенных программ, которые совпадают с заданным именем.
Если запущены процессы с совпадающими именами, то их PIDы будут отображаться на экране.
Если совпадений не найдено, выходные данные будут пустыми.
Отображение только одного PID
По умолчанию отображаются все PIDы соответствующих запущенных программ. При использовании параметра -s
принудительно отображается только один PID:
oleg@mobile:~:$ pidof -s chromium
115898
oleg@mobile:~:$
Исключение процесса с заданным PID
Запуск утилиты с опцией -o
позволяет исключить процесс с заданным PID из вывода команды:
oleg@mobile:~:$ pidof -o chromium
pidof: illegal omit pid value (chromium)!
oleg@mobile:~:$
Команда pidof
возвращает 0, когда хотя бы одна запущенная программа совпадает с запрошенным именем. В противном случае код выхода есть 1.
Рабочие процессы ядра
Выводим идентификатоы процессов оболочки, запустив утилиту с параметром -x
:
oleg@mobile:~:$ oleg@mobile:~:$ pidof -x bash
112971 112936 620
oleg@mobile:~:$
Процессы текущего корневого каталога
Утилита, запущенная с параметром -c
, выведет лишь идентификаторы процессов, запущенных в том же корневом каталоге. Это может быть полезно при работе в среде chroot
:
oleg@mobile:~:$ pidof -c bash
112971 112936 620
oleg@mobile:~:$
Команда pidof в сочетании с командой kill
Утилиту можно использовать в сочетании с командой kill
для завершения программы.
Если нужно убить процессы зависшего браузера Chromium сначала находятся его PIDы:
oleg@mobile:~:$ pidof chromium
115898 110423 98732 98720 98656 68012 8971 1538 1365 1340 1312 1295 1228 893 877 869 626
oleg@mobile:~:$
Теперь от sudo
отправляем сигнал SEGTERM для остановки процессов браузера:
oleg@mobile:~:$ sudo kill -9 115898 110423 98732 98720 98656 68012 8971 1538 1365 1340 1312 1295 1228 893 877 869 626
oleg@mobile:~:$
Заключение
Описанная в статье команда Linux pidof проста в использовании. Изучить работу с ней не представляет никаких сложностей.