恢复SSH会话


13

我已经通过SSH连接到服务器并创建了一个进程,但是突然我的Internet连接断开了。我知道该过程正在进行中,但是如何恢复上一个会话以查看其进度呢?

Answers:


16

如上所述,将来您可以使用屏幕来防止此类情况。有关如何使用屏幕的简短说明:

  1. screen -S compiling_stuff
  2. 在这里做东西。例如 ./configure
  3. 如果由于某种原因关闭了连接,则可以重新连接到服务器并发出 screen -r comp
  4. 您也可以通过按断开屏幕会话 CTRL+A+D

祝好运


17

screen 最好在终端中启动命令,该命令在您断开与终端的连接时会保留(故意,ctrl + ad或由于连接中断等原因)。

无论其可以将正在运行的进程重新连接(例如:你正在运行的会话的外壳,如果仍在运行),以当前的终端(即,重新连接标准输入,标准输出,键盘,而且还使新终端的控制终端为过程)使用:reptyr

为了两全其美:安装screen,启动它,然后使用reptyr^^ 在该屏幕会话中重新附加该过程


Oliver,如何重新附加到正在运行的进程?你能给我个提示吗?
弓箭手

@archer:提示:跟随链接^^(第二段结尾)
Olivier Dulac 2013年

@archer:但是屏幕更简单:一旦在屏幕上运行完,ctrl + ad就会从屏幕上分离(然后回家)。然后重新附加到屏幕:“ screen -r”(或更复杂的方法,如果遇到问题)。要区分许多屏幕会话,请给它们起一个名字。
Olivier Dulac 2013年

7

你不能 将来,您可以使用screen或来阻止类似的事情tmux,创建或允许断开连接后重新连接到会话。


5

只是以为我会提到http://mosh.mit.edu/

允许漫游,支持间歇性连接并提供智能本地回显和用户击键的行编辑的远程终端应用程序。

Mosh替代了SSH。它更加健壮和响应迅速,尤其是在Wi-Fi,蜂窝和长途链路上。


+1提示,我之前从未听说过该工具!
Olivier Dulac 2013年

2

采用 screen ssh可以稍后重新连接到您的会话。

据我所知,没有办法重新连接到封闭的ssh会话。


1

我可以推荐Byobu

Byobu是对终端多路复用器GNU Screen或tmux的增强,可用于提供屏幕上的通知或状态以及选项卡式多窗口管理。目的是在连接到远程服务器时为终端会话提供更好的用户体验。


1

我建议使用tmux

您可以通过还原tmux会话tmux attach

tmux是一个软件应用程序,可用于多路复用多个虚拟控制台,从而允许用户访问单个终端窗口或远程终端会话内的多个单独的终端会话。对于从命令行界面处理多个程序,以及将程序与启动该程序的Unix shell分开,这很有用。[1] 它提供了许多与GNU Screen相同的功能,但是在BSD许可下分发。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.