54 linux shell networking session
我在远程 CentOS 5.6 机器上做一些工作,但我的网络一直在掉线。有没有办法在重新连接后恢复挂起的会话?
编辑:我正在用 yum 进行一些更新和安装,我担心如果进程一直挂在他们正在做的事情中间,这可能是一个问题。
小智 80
没有办法,但为了防止这种情况,我喜欢使用tmux
. 我启动 tmux,开始操作并继续我的工作。如果我返回并发现连接已断开,我所要做的就是重新连接并键入tmux attach
.
这是一个例子。
$ tmux
$ make <something big>
......
Connection fails for some reason
Reconect
$ tmux ls
0: 1 windows (created Tue Aug 23 12:39:52 2011) [103x30]
$ tmux attach -t 0
Back in the tmux sesion
Run Code Online (Sandbox Code Playgroud)
Wil*_*ell 37
tmux 和 screen 的建议都是很好的建议。它们暗示了您的问题的答案,但实际上并未说明。问题的答案是:没有办法。如果您通过 ssh 登录,则在连接断开时 shell 将结束。的解决办法是登录并立即启动某种形式的虚拟终端(这可以用工具做喜欢的dtach
,abduco
,tmux
,或screen
)。当连接断开时,您所在的 shell 结束,但您可以打开一个新的 shell 并重新连接到运行您实际工作的 shell 的虚拟终端。
小智 10
有人添加reptyr
了评论而不是答案,所以我无法投票,但这似乎是对已编辑问题的一个很好的答案,并且在 CentOS 上运行得很好。
看:
有没有办法可以在重新连接后恢复挂起的会话?
编辑:我正在使用 yum 进行一些更新和安装,我担心如果进程在执行任何操作时一直挂起,这可能会成为一个问题。
同样的事情,我失去了与 yum 更新会话的远程连接。所以我搜索并找到了这个问题...然后这次重新连接并使用屏幕:
我就看到了百胜几个小时前给出的恢复提示。
从技术上讲,答案都是正确的,这不是挂起会话的恢复,而是将孤立进程重新设置为当前会话。
而且非常有用,它也...