我知道 os.nice() 对于父进程非常有效,但是我需要对子进程进行修改。我找到了方法,但是它似乎不是很方便,也不过分:

os.system("renice -n %d %d" % ( new_nice, suprocess.pid ) )

补习后,它不会返回结果良好的水平。

还有更干净的方法来重用python中的子进程吗?

最佳答案

使用 preexec_fn subprocess.Popen参数:



例子:

>>> Popen(["nice"]).communicate()
0
(None, None)
>>> Popen(["nice"], preexec_fn=lambda : os.nice(10)).communicate()
10
(None, None)
>>> Popen(["nice"], preexec_fn=lambda : os.nice(20)).communicate()
19
(None, None)

关于python - 是否可以取消子流程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2463533/

10-16 12:31