Linux 故障排除:关闭 SSH 会话后如何保存工作状态?

大多数时候,我用 SSH 命令行去连接我的远程服务器。不幸的是,今天断电了,网络集线器也关闭了,所以我的SSH会话丢失了。如果你的一个重要工作的SSH会话丢失了你会怎么办?这里有个叫做 Tmux 的简单工具,它会在 Putty 或者 SSH 会话结束之后保持一个进程记录你的工作。

Tmux 是一个终端复用器。它支持单个窗口多终端的创建、访问、控制。Tmux 在你在断开连接之后继续运行,当你重新连接就能获得之前的工作状态。

下面是具体的操作过程:

首先,在你的远程计算机里面安装 Tmux.

基于 RPM 的系统:

yum install tmux

基于 DEB 的系统:

apt-get install tmux

在安装 Tmux 之后 SSH 连接到你的远程计算机上,这里以 CentOS 7 为例。

ssh root@ip地址

打开你的终端,然后运行 Tmux.

tmux

然后运行你想执行的任务.

这里我以升级 CentOS 7 为例。

yum update

运行结果:

现在这个更新进程正在运行。然后按下”D”之后按下”Ctrl+B”来离开 tmux 会话.

现在,回到实际的终端,但是此时工作进程仍在 tmux 会话里面运行。用 SSH 断开并重新连接到远程计算机。在终端里输入 tmux attach

tmux attach

下图显示你的工作任务处于什么状态

类似的,你可以在 tmux 会话中运行你需要的任务,数目不限。当然,你可以通过 Ctrl-B 和 $ 对每个会话重命名。

你可以查看当前运行的 tmux 会话数目:

tmux list-sessions

结果举例:

0: 1 windows (created Thu Jan 8 15:13:42 2015) [80×23]

1: 1 windows (created Thu Jan 8 15:20:05 2015) [80×23]

Tmux 的功能远远不止以上所介绍的,我们可以在远程计算机上执行需要长时间执行的任务后断开连接,在之后的时间我们可以重新登录后通过 Tmux 查看运行状态。

你也可以通过以下命令查看更多内容:

man tmux

tmux 1.8 发布,Linux 终端复用器 http://www.linuxidc.com/Linux/2013-03/81980.htm

Tmux:终端复用器 http://www.linuxidc.com/Linux/2013-07/86776.htm

tmux使用简单教程 http://www.linuxidc.com/Linux/2014-10/107644.htm

CentOS下Tmux安装和使用 http://www.linuxidc.com/Linux/2014-11/109375.htm

CentOS下tmux打造完美终端管理工具  http://www.linuxidc.com/Linux/2015-01/111524.htm

Tmux 的详细介绍请点这里
Tmux 的下载地址请点这