以有限的优先级启动子进程

时间:2012-12-10 10:45:57

标签: python windows python-3.x subprocess

我正在寻找一种方法如何使用系统优先级较低的Pythons subprocess模块启动进程,我已经找到了:

subprocess manual中没有提到priority

我已经有了似乎有效的解决方案:

self.start_low_priority =  ('cmd', '/c', 'start', '/MIN', '/LOW', '/B', '/WAIT')

注意: 开关/B /WAIT必须按此顺序才能实现

并将其用作:

args = self.start_low_priority + ( 'foo.exe', 'bar', 'foobar')
subprocess.call( args, shell=False)

但是这个解决方案似乎不是正确而干净的方式加上Process Explorer无法从像这样开始的应用程序中构建正确的“进程树”(因此你没有能够杀死进程树)。

是否有任何良好做法为Windows执行此操作? Python没有提供任何我错过的多平台解决方案吗?

1 个答案:

答案 0 :(得分:4)

您可以使用psutil库。 特别是,您可以将优先级设置psutil.Process.nice设置为所需的值。

另请参阅this答案。


修改:不推荐直接查看psutil的文档设置Process.nice,您应该使用Process.nice(value)