2

嗨,我需要一些指导方针,如何编写执行其他 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()
4

4 回答 4

4

使用芹菜

于 2011-05-03T09:54:47.153 回答
1

看看supervisord。听起来它会做你想做的事。

于 2011-05-03T09:38:47.493 回答
1

也许您可以尝试使用 multiprocessing 模块,它可以处理看起来与您尝试实现的相似的工作进程池。

于 2011-05-03T09:45:01.467 回答
0

您可以使用该poll()方法检查进程是否仍在运行。您必须遍历每个进程并检查它是否运行,否则,运行一个新进程。

于 2011-05-03T09:41:06.817 回答