🐧 Как найти PID и PPID процесса в системах Linux

by itisgood

Знание PID и PPID процесса может быть полезным, если вам нужно управлять или взаимодействовать с процессом, запущенным в вашей системе.

Существует множество способов узнать PID (идентификатор процесса) и PPID (идентификатор родительского процесса) данного процесса в Linux.

Команда ОПИСАНИЕ
pidof process_name Работает с точным именем процесса
pgrep process_name Возвращает PID всех совпадений
ps -o ppid= -p PID Получение PPID из PID
$$ PID текущего процесса/оболочки
${PPID} PID родителя текущего процесса

Я подробно расскажу об этих командах, но перед этим кратко о процессах, PID и PPID.

Основы процессов  Linux

Все, что выполняется в вашей системе, выполняется через нечто, известное как процесс, который просто является запущенным экземпляром программы.

Всем процессам, запущенным в системе, присваиваются идентификаторы.

Они могут быть полезны, если вы хотите контролировать процесс (например, чтобы узнать, сколько памяти или процессора он использует), или, может быть, если вы хотите завершить его, если он начинает зависать или просто вести себя немного странно.

Идентификаторы, которые прикрепляются ко всем этим процессам, известны как PID и PPID.

Что такое PID?

PID означает “process id”.

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

Что такое PPID?

PPID довольно тесно связан с PID.

PPID означает “parent process id”, и если вы еще не поняли, то это просто обозначает процесс, который создал процесс, который вы проверяете.

Например, допустим, у нас есть два процесса.

Один из них называется “spawner” и имеет идентификатор процесса (или PID) 7234.

Наш второй процесс, “email client”, имеет идентификатор процесса 7456, когда мы его создаем.

Наша программа spawner запускает наш почтовый клиент, в результате чего наш почтовый клиент имеет PID 7456 и PPID 7234, поскольку именно spawner (который имел PID 7234) породил почтовый клиент.

Теперь, когда вы подтянули свои базовые знания, давайте посмотрим, как получить идентификатор процесса в Linux.

Получение PPID из PID дочернего процесса

Как только вы узнаете PID процесса, вам не составит труда найти PPID этого процесса.

Вы можете просто выполнить следующую команду, заменив PID на идентификатор текущего (дочернего) процесса:

ps -o ppid= -p PID

Проверка PID и PPID текущего запущенного процесса

Если вы работаете в оболочке, такой как Bash, очень легко найти PID и PPID вызывающего процесса (которым обычно является оболочка).

Bash хранит значение PID в переменной $$, а PPID – в переменной ${PPID}:

# Вывести PID.
echo "$$"

# Вывести PPID.
echo "${PPID}"

Заключение

Теперь вы должны знать все, что нужно для поиска PID и PPID запущенных процессов в вашей системе.

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

You may also like

Leave a Comment