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

Это зависит от того, как ваш код написан и структурирован. Некоторые языки требуют компиляции, например typescript. Использование ключевых слов, таких как import, по-прежнему не поддерживается большинством браузеров и узлов, поэтому также требуется компиляция. По сути, компиляция не требуется, если вы пишете на языке, понятном вашему браузеру или узлу (в зависимости от того, что вы используете).

Но имейте в виду: это ОЧЕНЬ ПЛОХАЯ ПРАКТИКА . Компиляция позволяет писать код, который хорошо структурирован, читабелен и использует новейшие функции EcmaScript. Это также позволяет разделять код, минимизировать код, связывать и многое другое, что было очень приятно несколько лет назад и теперь является стандартом в производственном коде. Более того, никто этого не делает, поэтому, если вы напишите свой код так, чтобы никто не использовал его, вы вряд ли найдете справку по отладке на таких форумах, как этот. И последнее, компиляция стала очень простой благодаря таким инструментам, как Webpack.

Попробуйте сборник!

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
поделиться
Другие вопросы по тегам:

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