我不相信没有像屏幕这样的东西是可能的。一旦你的伪 TTY 丢失,我几乎可以肯定它无法从不同的 shell 中恢复(至少在没有一些 narly hack 的情况下不能恢复)。
至于将现有流程添加到新屏幕,我认为这是可能的。试试这里的说明:
http://monkeypatch.me/blog/move-a-running-process-to-a-new-screen-shell.html
首先要做的是暂停进程。就我而言,Irssi 可以通过键入Ctrl+来暂停Z。
其次,在后台恢复进程:
$ bg
现在,我们将把进程从它的父进程(shell)中分离出来。因此,当父进程终止时,子进程(Irssi)将能够继续。为此,我们使用 disown 内置函数:
$否认irssi
启动屏幕会话:
$屏幕
由于我们在屏幕会话中,我们将检索 irssi 进程。为此,我们使用带有 pid 的 reptyr 命令:
$ 复制人
为了避免繁琐的 pid 研究,我们可以使用 pgrep 命令:
$ reptyr $(pgrep irssi)
现在该进程在屏幕外壳中,我们可以安全地分离我们的会话,而不再担心杀死我们的 X 服务器或关闭我们的 ssh 连接。
为此,您需要reptyr。
选项 2:
我怀疑您可能正在尝试解决错误的问题。如果您的 SSH 连接断开,为什么不解决这个问题呢?您可以通过调整连接设置将 SSH 设置为对超时和断开连接的容忍度极高。
在您的客户端上,$HOME/.ssh/config
添加:
ServerAliveInterval 60
ServerAliveCountMax 5
现在,即使服务器 5 分钟没有响应,您的会话也不会超时。