5

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

手册priority中没有提到。subprocess

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

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 没有为此提供任何我错过的多平台解决方案吗?

4

1 回答 1

4

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

另请参阅答案以获取示例。


编辑:直接查看psutil's 文档设置Process.nice已被弃用,您应该Process.nice(value)改用。

于 2012-12-10T16:20:48.980 回答