python 脚本关闭并重新启动后如何恢复子进程?

瑞奇微

我有一个 python 脚本,它调用这样的子进程

process = subprocess.Popen('python', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

上面的代码将在现有的 python 执行中打开一个 python 解释器。我想要做的是:当我关闭主 python 执行并重新启动它时,我希望前一个子进程自行继续。我知道这是可能的,因为当我print(process)subprocess object created at <0x00123abc>

是否可以通过保存它的状态来恢复这个对象?

哈努

一般来说没有。当父进程死亡时,子进程的所有权被赋予 init (1),但不可能再从 init 重新获得所有权。也无法重新获得 io 通道。

您最好的选择是使用 screen - 假设您使用的是基于 Unix 的系统。它在 Windows 上没有帮助。Screen 有一个巧妙的方法来绕过这个限制,通过创建一个守护进程来实际执行你的进程并将它的 IO 传递给你。当您的屏幕“gui”退出时,守护进程继续运行,并且子进程(在本例中为 python 解释器)保持活动状态并继续与守护进程通信,因为它认为它是控制台。然后,您可以使用不同的 screen 命令从不同的 shell/进程重新附加到此守护程序。

这是我们必须用来在 80x24 ANSI 终端上保持会话活动的恐龙技巧,但它仍然有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

保存时如何查看python源代码文件并重新启动?

Python多处理-捕获信号以重新启动子进程或关闭父进程

如何重新启动python 3脚本?

如何避免每次导入后重新启动python shell

如何使服务器上运行的Python脚本在连接断开后自动重新启动?

Kubernetes:如何使用python获取容器的状态并重新启动?

如何使用python多处理模块重新启动进程

启动Python进程后如何退出bash脚本?

如何从主python脚本重新启动正在运行的python脚本?

Python Turtle:清除窗口并重新启动游戏

重新启动X后如何恢复挂起的进程?

使用UPSTART失败一秒钟后,如何重新启动python脚本?

使用UPSTART失败一秒钟后,如何重新启动python脚本?

从Python脚本重新启动Scapy

Selenium Python-如果找不到元素,请关闭所有内容并重新启动

程序重新启动时,python子进程管道可以重新连接到原始子进程吗?

暂停并重新启动所有Python进程

停止并重新启动需要大量RAM的python脚本,同时保存数据(Linux)

如何在发生崩溃时监控python scrypt并重新启动它?(视窗)

错误后重新启动python文件

重新启动python脚本

取消并重新启动某个例程(python脚本)

重新启动后恢复Bash脚本

重新启动后Powershell恢复脚本

如何在固定时间杀死并重新启动Python脚本?

如何在后台运行 Python 脚本并在崩溃后重新启动它?

如何让我的程序在 Python 中循环并重新启动?

每天杀死并重新启动 Python 脚本

使用 pygame.quit() 关闭后的 Python Pygame 我无法在不停止整个脚本并重新启动它的情况下再次打开它