我正在尝试使用 GNU 屏幕会话逐行调试一长段代码。我通过 shell 在其中工作。我用 启动屏幕screen -S Name
。通常我会运行几行计算,这些计算需要一段时间,所以我让终端保持打开状态。有时到我的 ssh 的管道会中断,所以我会关闭终端。当我几个小时后回来尝试 时screen -r Name
,屏幕消失了,没有显示screen -ls
。它被删除了吗?我该如何阻止这种情况发生?我无法继续工作,因为我总是丢失它
答案1
我相当肯定最多ssh 客户端在断开/注销/丢失连接时会注销服务器 - 在这种情况下,服务器会删除用户在活动 ssh 窗口中运行的所有进程。您可以尝试的一个解决方案是执行nohup screen -S name
,它将运行命令但不接受键盘输入,也不会输出到控制台 - 而是将控制台输出到nohup.out
运行命令的文件夹中的文件中。但是,有些命令不能在 下运行nohup
,因此您可能无法通过 运行命令nohup
,尽管我可以通过 nohup 调用脚本来运行不起作用的命令*.sh
。希望这对您有所帮助。