Программно получите родительский pid другого процесса?

Я попробовал Google, но нашел getppid() который получает родительский pid текущего процесса.

Мне нужно что-то как getppid(some_other_pid), есть ли такая вещь? В основном берет pid некоторого процесса и возвращает pid родительского процесса.

26
задан codeforester 11 July 2019 в 21:07
поделиться

5 ответов

I think the simplest thing would be to open "/proc" and parse the contents.

You'll find the ppid as the 4th parameter of /proc/pid/stat

31
ответ дан 28 November 2019 в 07:00
поделиться

Еще один способ получить его из записи прока:

cat /proc/<pid>/status | grep PPid:
2
ответ дан Saurabh Sengar 28 November 2019 в 07:00
поделиться

или из оболочки Unix вы можете попробовать ps -p <child_pid> -o ppid=

13
ответ дан Samuel Kerrien 28 November 2019 в 07:00
поделиться

Мы можем использовать pstree команда также.

pstree -p -s <pid of the process>

pstree -s дает дерево всех предков. Добавление -p даст Вам pid также.

Пример: Предположите, что есть процесс с pid=6206. Используя pstree команда

pstree -p -s 6206

Вы получите дерево процесса.

systemd(1)───lightdm(1066)───lightdm(1191)───upstart(1360)───gnome-terminal-(5222)───bash(5229)───cpu-print(6206)

Здесь родительский PID 5229

0
ответ дан 28 November 2019 в 07:00
поделиться

You can have a look at sysctl() system call and this link.

2
ответ дан 28 November 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: