我有一个动作队列,我使用ssh将不同的作业提交到不同的服务器。例如Python:重新设置或守护进程
ssh s1 job1.py
ssh s2 job2.py
问题是job1.py
和job2.py
可能需要较长时间才能完成,我不希望我的行动队列阻止。我想知道如何以某种方式重新找回我的工作。
我目前的解决方案是:job1.py
使用subprocess.Popen(['my_actual_job.py'])
。使用这个,ssh不会阻塞,但my_actual_job.py
永远不会完成。它在完成任务之前以某种方式终止。如果我ssh s1 "job1.py 2>1"
,my_actual_job.py
完成,但它会阻止我的动作队列。
任何人都知道我该如何重置我的子进程(my_actual_job.py
),以便ssh可以终止,但我的工作可以在后台完成他们的任务?
我看到PEP 3143: Standard daemon process library,但是有没有更好更干净的方法呢?
我无法更改我的ssh命令......我需要以某种方式在job1.py中执行此操作。我做了Double Forking,但仍然无法正常工作......
我无法控制ssh ...我检查:http://code.activestate.com/recipes/66012-fork-a-daemon-process-on-unix/...但这不起作用或 – Amir 2012-07-24 19:53:53