Допустим, у меня запущен chrome, который имеет 100 различных процессов, не все из которых являются прямыми детьми. Каков лучший способ программно получить все процессы либо из procfs
, либо из любого системного вызова (я полагаю, getrusage
разрешает только вызов процесса), учитывая PID основного chrome родитель в иерархии?
Кроме того, существует ли какой-либо API, эквивалентный PSAPI в Windows, который обеспечивает OpenProcess
, GetProcessMemoryInfo
et c, который позволяет эффективно выполнять итерацию в памяти, а не анализировать procfs?
Самый эффективный способ, пожалуйста. Не вызывать другие процессы, такие как ps
, pstree
, pgrep
, et c.
Боковой контекст : Это в основном образовательное упражнение, чтобы найти наиболее эффективный способ сделайте это, что я начал делать, пытаясь написать простой скрипт в nodejs, чтобы попытаться получить все процессы программно, а затем вычислить сумму памяти, занимаемой деревом процессов, включая каждый.