我想在python中创建独立的进程。这些进程是一个python脚本,我想拥有多个实例,但用不同的参数实例化。 简单地说,从一个for循环中,我打电话subprocess.Popen(),但与不同的ARGS相应:产生多个python进程/守护进程相同的名称(不同的参数)
for d in mylist:
subprocess.Popen(['./subscriber.py', d.arg1, a.arg2, d.arg3])
在subscriber.py,我有代码“daemonizes”的过程按照各种recipes 替代地这一点,我自己也尝试推出我subscriber.py有:
for d in mylist:
p = multiprocessing.Process(target=subscriber.start,
args=(d.arg1, d.arg2, d.arg3))
p.daemon=True
p.start()
我的脚本也可以使用Python记录写入到一个共同的日志文件。
这两种方法都会发生什么,只有循环的最后一次迭代过程才会真正运行。我需要的只是让这些后台守护进程“永远”运行,但我只能获得1个实例!重要的是,我想要调用线程终止,离开这堆运行守护进程,运行..
我已经搜索了很多,在stackoverflow和其他地方,似乎无法找到一个类似的例子。也许它是我的蟒蛇新手 - 是我的方法完全不正确?
环境: - 的Python 2.7,Ubuntu Linux操作系统
您是否尝试制作进程列表而不是重新分配变量?例如。 p.append(multiprocessing.Process(target = subscriber.start,args =(d.arg1,d.arg2,d.arg3))) – Serdalis 2012-03-21 06:12:11
好的,但我想调用线程终止,留下一堆正在运行的守护进程背后。这就是为什么我倾向于Popen(),因为多处理似乎不允许子进程运行。 – lusito75 2012-03-21 06:18:14