我正在运行非常大的内核编译,我希望renice
整个过程至少-1
,这样它就会获得更多的 CPU 时间。目前,我没有在机器上运行任何其他东西。
编译已经在运行,我不想停止它。无论如何,renice
所有的工作都有吗spawned
?我曾尝试过:
renice -n -10 -p [the make process]
但产生的一切仍然是priority 0
.
答案1
这pstree
工具已经可以显示进程树。它没有“原始”输出模式,因此需要一些输出解析。
它是活泼的(计算的时间,一些进程已经出现或消失)并且可能容易出现解析错误(例如,如果子进程更改其名称并使用数字和括号模仿 pstree 的输出)。只要不需要完全可靠性,这应该可以完成工作:
MAKE_PID=[the make process]
renice -n -10 -p $(pstree -p $MAKE_PID | grep -o '([1-9][0-9]*)'|tr -d '()')
简而言之:显示包含每个进程 pid 的树,仅保留 pid 值:括号之间的数字,删除括号,将结果提供给 renice。