Лучший подход для получения всех рекурсивных дочерних процессов PID из файловой системы `/ proc` или эквивалентного API ядра? - PullRequest
1 голос
/ 06 января 2020

Допустим, у меня запущен chrome, который имеет 100 различных процессов, не все из которых являются прямыми детьми. Каков лучший способ программно получить все процессы либо из procfs, либо из любого системного вызова (я полагаю, getrusage разрешает только вызов процесса), учитывая PID основного chrome родитель в иерархии?

Кроме того, существует ли какой-либо API, эквивалентный PSAPI в Windows, который обеспечивает OpenProcess, GetProcessMemoryInfo et c, который позволяет эффективно выполнять итерацию в памяти, а не анализировать procfs?

Самый эффективный способ, пожалуйста. Не вызывать другие процессы, такие как ps, pstree, pgrep, et c.

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

...