gpt4 book ai didi

ssh - 网络丢失时保持程序在 ssh 中运行

转载 作者:行者123 更新时间:2023-12-01 23:50:20 26 4
gpt4 key购买 nike

当笔记本电脑(Mac)失去 wifi 连接或网络时,我有一个问题如何让我的程序在 ssh 中运行。我通过 ssh 远程运行 python 程序到服务器,在运行代码之前,我通过输入“屏幕”创建了一个新屏幕。然后我运行程序并按下 ctrl+A+D 来分离屏幕。一切看起来都很好,当笔记本电脑关闭时程序继续工作(在有 WIFI 的地方)。但是,当我带着笔记本电脑走到外面几分钟并重新打开笔记本电脑时,它显示“写入失败:管道损坏”并且程序停止了。我猜问题是因为笔记本电脑失去了网络连接。有没有办法解决这个问题,这样我就可以把我的笔记本电脑带到任何地方并保持我的程序运行?

最佳答案

打开 screen SSH 连接后在远程服务器上,这样你就有一个持久的 session ,而不是在你的本地机器上。

如果你这样做了,请注意,如果你断开连接,你仍然会断开连接,但再次通过 SSH 连接并重新打开 screen session 恢复工作。

local$ ssh remote.server
remote$ screen -ls # list screens
remote$ screen -dr <screen name> # force reconnect to screen session

编辑:

随着使用 screen您将获得一个可以恢复的永久 session 。此 session 将在您开始的地方进行。如果你想确保你继续在远程服务器上运行一些东西,那么首先 SSH然后启动 screen在 Remote 上。

如果您断开连接,则只有您的 SSH连接将被终止,您将与您的 screen 断开连接 session ,但不会停止。您可以 SSH再次进入并重新连接到 screen session 。

尝试这个:
local$ ssh remote.server
remote$ screen -S date
# screen starts with name 'date'. if it's the first time you start screen on
# this box it might display some welcome message where you need to press enter

remote-screen$ while true; do date; sleep 1; done
# this will show the time every second

# disconnect your network: the ssh connection will be terminated
# open console again and continue

local$ ssh remote.server
remote$ screen -dr date

重新连接后 screen session 您应该看到日期仍在继续而没有任何停顿。

关于ssh - 网络丢失时保持程序在 ssh 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891003/

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