gpt4 book ai didi

Python:重新设置进程的父级或守护进程

转载 作者:行者123 更新时间:2023-12-01 05:57:59 25 4
gpt4 key购买 nike

我有一个操作队列,在其中我使用 ssh 远程向不同的服务器提交不同的作业。例如

ssh s1 job1.py
ssh s2 job2.py

问题是 job1.pyjob2.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 ,但仍然不起作用...

最佳答案

您对 Popen 的问题是,job1.py 将终止而不等待 my_actual_job.py 完成(假设您从未调用p.join() 或类似的); my_actual.job.py 应该在被杀死之前才刚刚开始。

您是否尝试过要求 ssh 进程将其自身设置为后台,例如ssh -n s1 job1.py

关于Python:重新设置进程的父级或守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11622184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com