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

Vyk*_*tor 5 python windows subprocess python-3.x

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

prioritysubprocess手册中没有提到.

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

self.start_low_priority =  ('cmd', '/c', 'start', '/MIN', '/LOW', '/B', '/WAIT')
Run Code Online (Sandbox Code Playgroud)

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

并将其用作:

args = self.start_low_priority + ( 'foo.exe', 'bar', 'foobar')
subprocess.call( args, shell=False)
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案似乎并不是正确而干净的方式,而且Process Explorer无法从这样的应用程序构建正确的"进程树"(因此您无法终止进程树).

有没有什么好的练习方式来为Windows做这个?Python没有提供任何我错过的多平台解决方案吗?

Bak*_*riu 4

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

另请参阅答案的示例。


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