分享
首页 留言 网盘 登录
永不掉线的任务 tmux

在做生物信息分析的时候,我们经常是通过自己的客户端,远程登录服务器进行工作。如果本地端掉线,那么一些任务就变成挂起状态,没了结果,还得重新操作。尽管我们前面介绍过如何通过设置xshell让服务器不掉线,但是没办法解决突然断网或者客户端计算机休眠。即使我们前面介绍过使用nohup让任务保持非挂起状态运行,以及忘记nohup之后使用disown将任务切换为nohup状态,但如果每条命令都使用nohup实在是比较麻烦。那么如何才能让任务永不掉线呢?Linux系统为我们提供了强大的screen与tmux命令。

应用场景

网络不稳定,经常掉线,导致任务经常中断;

使用网络下载数据,例如wget或者prefetch后台下载比较大的数据;

下班后,退出ssh登录,关机走人,任务忘了切换到nohup模式;

tmux

tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端。使用tmux,用户可以连接或断开会话,而保持终端在后台运行。也就是登录Linux之后,开始tmux,之后所有的操作都在tmux中完成,这样即使突然掉线了,所有的任务都还在tmux之中。

tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分,会话实质是伪终端的集合,每个窗格表示一个伪终端,多个窗格展现在一个屏幕上,这一屏幕就叫窗口。tmux的操作主要包括对会话、窗口、窗格的创建、关闭、重命名、连接、分离、选择等等。

其实使用tmux并不复杂,虽然tmux有非常多的功能,但是我们主要就是掌握一些基本快捷键就行。

1 软件安装

[b #ubuntu

apt install -y tmux

#centos

yum install -y tmux.x86_64]

2 软件使用

在命令行直接输入tmux,就会自动打开一个新窗口,这个就是tmux的虚拟终端,可以说是伪终端。注意最下面多了一条绿色的状态栏,表示当前一个新终端里。接下来就可以在这个终端中运行任务了。这个任务就一直待在这个虚拟终端中,即使突然掉线了,还可以恢复任务,可以继续运行。

3 快捷键

使用tmux需要经常使用快捷键,其中最常用的就是ctrl+b,因为Linux shell下很多快捷键都被占用了,只能这样操作了,每次先按一下ctrl+b,在使用对应的快捷键。注意ctrl+b是在tmux窗口中使用,在原始的shell命令行下不管用。下面列出一些最常用的快捷操作:

[b ctrl+b ? : 显示快捷键帮助

ctrl+b d : 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话

ctrl+b 空格键 : 采用下一个内置布局,这个很有意思,在多屏时,用这个就会将多有屏幕竖着展示

ctrl+b ! : 把当前窗口变为新窗口

ctrl+b " : 横向向分隔窗口

ctrl+b 上下键: 上一个及下一个分隔窗口

ctrl+b & : 确认后退出当前tmux

ctrl+b c : 创建新窗口

ctrl+b n : 选择下一个窗口

ctrl+b l : 最后使用的窗口

ctrl+b p : 选择前一个窗口

ctrl+b w : 以菜单方式显示及选择窗口

ctrl+b s : 以菜单方式显示和选择会话。

ctrl+b t : 显示时钟。然后按enter键后就会恢复到shell终端状态]

tmux案例

接下来我们演示一条,使用tmux下载生物数据的案例。

新建会话,命名为wget

tmux new -s wget

2 运行命令

wget -c http://www.lpv4.cn:10000/?files/sxlog/sxlog-1.1.9.zip.gz

3 按ctrl+b,然后字母d,退出会话,任务仍在运行

$ tmux new -s wget

detached

tmux ls查看任务

$ tmux ls

wget: 1 windows (created Wed Jul 24 10:22:34 2019) 114x26

重新进入wget终端,第一个参数a也可以写成attach,任务正在运行

tmux a -t wget

6 关闭会话任务,如果在会话中使用ctrl + d,或者exit,就会在退出会话,也关闭了该会话

tmux ls查看会话

$ tmux ls

#7 kill-session杀死会话,每个会话成为一个session

$ tmux kill-session -t wget

#8 关闭所有会话

$ tmux kill-server

多窗口管理

如果一次创建了多个会话,tmux还可以对这些窗口进行管理,其实这个xshell自带这个功能,使用xshell更加方便。下面列出一些快捷键,感兴趣的可以尝试一下,首先还是在窗口中按ctrl+b,然后使用对应的快捷键。

x
欢迎赞助本网站
赞助码
评论留言
一共0条留言

网站勉强运行:

富强民主文明和谐自由平等公正法制丨爱国敬业诚信友善

我们一直用心在做

本站支持IPv6访问