我想要运行一个产生子进程的过程,例如,
for i in {1..4}; do
sh -c 'echo $$; for j in {1..3}; do
sh -c "echo ...\$\$; sleep 1"
done'
done
并且我想每 2 秒用 监控一次 CPU 和内存使用情况top
。
- 我可以用 监控它的资源使用情况
top -p <PID>
,但这并没有考虑到孩子的情况。 - 我可以仅用 来监控所有
top
正在运行的进程,但是信息太多了。 - 我可以预先计算 PID 列表,然后将它们全部传递给
top
,但该过程可能会产生新的子进程,这是无法解释的。
我如何才能top
每 2 秒获取一次我正在运行的进程及其产生的任何进程的快照?
有人在这里问过类似的问题,但它是关于在流程结束后将这些信息汇总为一个数字。我的问题是关于在流程仍在进行时持续监控流程。