我正在寻找一种如何使用subprocess
具有低系统优先级的 Pythons 模块启动进程的方法,我已经发现:
Unix
使用解决方案preexec_fn
和os.nice()
resources
再次似乎只适用于的模块Unix
- linux的一些其他问题和答案
手册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 没有为此提供任何我错过的多平台解决方案吗?