在连接远程服务器使用时,如果直接运行程序,有时会因为掉线、丢失远程连接等原因导致程序跑到一半就结束了,十分恼火。如何在后台运行程序,使我们在退出登录时程序仍然可以跑?推荐使用tmux,在tmux的分屏(session)中跑的程序是在后台持续运行的,不用担心掉线等问题。
tmux是一个用来分屏+后台运行程序的非常好用的基于linux命令行操作的软件,再也不用担心过夜跑程序掉线的问题了。当然这种方法适用于比较小型的课题组/办公室的工作站,如果是大学、学院、公司等的hpc,尽量还是选择使用qsub以及sbatch等方式(文明使用公共资源!),这些方法的优势是可以同时跑很多程序,如同时run几百个样本的alignment,但同时申请资源的人过多时需要等待中心分配资源,有利有弊。

tmux1.png
如图所示,打开tmux的分屏之后,最下面会出现一个绿色的条,说明现在是在tmux的session中。
tmux的一些常用指令:
1)建立一个新的分屏(session):
tmux
tmux new
tmux new-session
tmux new -s session101 #建立一个名为session101的session。
2)删除一个分屏:
tmux kill-session -t session101 #删除一个名为session101的session。
3)展示所有目前存在的分屏:
tmux ls
4) 进入/切出分屏:
tmux attach #进入最后一个切出去的分屏。
tmux attach-session -t session101 #进入一个叫session101的分屏。
tmux detach #切出当前分屏。这个操作等同于先按CTRL+B再按D。
5)退出分屏:
exit
以上是经常使用的操作,更多更详细的操作可参考:
https://tmuxcheatsheet.com