我有一个动作队列,我在其中使用 ssh 将不同的作业远程提交到不同的服务器。例如
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 中以某种方式进行。我做了双叉,但仍然不起作用......