我有一个python脚本(类似Unix,基于RHEL),叫的MyScript,有两个功能,称为A和B.我希望他们能够在不同的,独立的进程中运行(分离B和A):
- 启动脚本的MyScript
- 执行功能的
- 产生一个新的过程,从函数A将数据传递到乙
- 虽然函数B运行,继续与功能的
- 当功能的完成,出口的MyScript即使B的仍在运行
我想我应该用多来创建一个守护进程,但文件暗示,这不是正确的用例。 所以,我决定生成一个子进程和子^ 2个处理(孩子的孩子),然后强迫孩子终止。 虽然这个解决办法似乎工作,似乎真难看。
你能帮助我使之更符合Python? 请问子模块都将在功能操作的方法? 下面的示例代码。
import multiprocessing
import time
import sys
import os
def parent_child():
p = multiprocessing.current_process()
print 'Starting parent child:', p.name, p.pid
sys.stdout.flush()
cc = multiprocessing.Process(name='childchild', target=child_child)
cc.daemon = False
cc.start()
print 'Exiting parent child:', p.name, p.pid
sys.stdout.flush()
def child_child():
p = multiprocessing.current_process()
print 'Starting child child:', p.name, p.pid
sys.stdout.flush()
time.sleep(30)
print 'Exiting child child:', p.name, p.pid
sys.stdout.flush()
def main():
print 'starting main', os.getpid()
d = multiprocessing.Process(name='parentchild', target=parent_child)
d.daemon = False
d.start()
time.sleep(5)
d.terminate()
print 'exiting main', os.getpid()
main()