嗨,我需要一些指导,如何编写执行其他 python 程序的程序,但最多一次执行 6 次,并且始终尝试运行 6 个进程,即使一个进程结束了
我也想知道这些进程发生了什么,但我不想等待任何进程完成
刚刚创建的进程的pid是多少?它还在运行吗?或者出现错误?或者成功完成?
一些工作经理...
import subprocess
def start():
proc = {}
for i in range (0,6):
proc[i] = subprocess.Popen(
['python', 'someprogramm.py', '--env', 'DEVELOPMENT', '-l'],
shell = True,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT
)
if __name__ == '__main__':
start()
使用芹菜。
看看supervisord。听起来它会做你想做的事。
也许您可以尝试使用多处理模块,它可以处理工作进程池,这看起来与您尝试实现的目标类似。
poll()
方法来检查进程是否仍在运行。您必须循环遍历每个进程并检查它是否运行,否则运行一个新进程。