恢复 ssh 会话连接

Sem*_*aki 2 ssh session console

我对 ubuntu 很陌生,我需要做一些事情,但我不知道该怎么做。

让我们假设我想连接到服务器,开始一个大编译(数小时)并且我不想在编译时保持连接到服务器。

现在,如果我断开连接并再次连接,则看不到编译的输出(我假设连接创建了一个新会话)

有没有办法连接,启动一些东西,断开连接,再次连接时恢复以前的连接,这样我就可以看到到目前为止已经完成的所有输出到控制台?(就像我做远程桌面一样,但在 ssh 中)

谢谢

编辑:

实际上我对恢复控制台会话很感兴趣。想象一下,编译或我可能在某个时候运行的任何其他东西要求用户输入以继续。

玩具示例:

1)我通过ssh连接

2)我跑 sudo apt-get dist-upgrade

3)这会要求我确认升级(我知道我可以通过一些标志来避免确认,但我不想)

4)我断开连接

5)我再次连接,我希望能够看到历史记录和控制台要求我确认升级

6) 我确认升级并再次断开连接。

use*_*274 6

您需要一个持久的终端多路复用器,例如tmuxGNU screen

这些允许您在单个连接中打开一个或多个 shell 会话;与它们分离(有意地,例如在工作日结束时,或无意中,由于网络问题),然后重新连接到相同的 shell 会话。

有许多子命令和可能的自定义,但典型的用途是

$ tmux      /* starts new shell, with tmux status bar at the bottom of terminal window */
$           /* do stuff */
$ Ctrl-b d  /* key escape sequence to detach from tmux session */
$ exit

            /* ... time passes; much later you ssh back in ... */

$ tmux attach

            /* and you're back on the session you detached from */
Run Code Online (Sandbox Code Playgroud)

作为附加说明,虽然我提供了项目网页的链接,但这两个选项都是为 ubuntu 打包的sudo apt install,如果尚未安装在您运行的任何操作系统版本上,则可以通过 安装。