在研發過程中,編者經常會碰見需要連接ssh到服務器上的情況,有時候網絡等原因會導致ssh斷開,使得正在運行的程序斷掉,尤其是在模型訓練的過程中,重新運行和訓練模型又會浪費較多時間。tmux指令是Linux系統中為了避免ssh斷開而導致正在運行的程序終止的一個很好用的命令,本文將對tmux的安裝以及常用指令進行介紹。
一、tmux的安裝:
tmux可以很好的解決當ssh斷開的時候程序死掉的問題,是一個很好的終端復用工具。在使用前,我們需要對其進行安裝,tmux的安裝在不同系統上的步驟不同,主要有以下幾種:
1、Ubuntu:
sudo apt install tmux
2、centos:
sudo yum install tmux
執行以上命令后,系統會自動裝上對應的依賴包。
如果由于網絡原因下載較慢,也可以嘗試下面的離線安裝方法(注:如果上述方法可直接安裝,則無需進行該小節后續操作):
離線包下載指令:
wget //github.com/tmux/tmux/releases/download/2.2/tmux-2.2.tar.gz
wget //github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
wget //ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
下載好之后,解壓下載到的三個壓縮文件,解壓后,文件分別為
libevent-2.0.22-stable、
ncurses-6.0、
tmux-2.2
進入libevent-2.0.22-stable目錄,安裝libevent:
# libevent
./configure --prefix=$HOME/.local --disable-shared
make && make install
進入ncurses-6.0目錄,安裝ncurses:
# ncurses
./configure --prefix=$HOME/.local
make && make install
進入tmux-2.2目錄,安裝tmux:
# tmux
./configure CFLAGS="-I$HOME/.local/include -I$HOME/.local/include/ncurses" LDFLAGS="-L$HOME/.local/lib -L$HOME/.local/include/ncurses -L$HOME/.local/include" --prefix=$HOME/.local/bin
make && make install
全部解壓后需要配置一下環境變量,將$HOME/.local/bin配置~/.bash_profile文件中:
[root@localhost ~]# vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:/usr/local/python3/bin
export PATH
二、tmux常用指令:
# 新建會話
tmux new -s session-name
# 查看當前存在的會話
tmux ls
# 重連tmux會話
tmux a -t name
# 刪除當前會話
tmux kill-session -t session-name
除了上面這些常用指令外,還有一些快捷鍵:
在tmux里面Ctrl + B是一個前綴鍵,要先按這個組合才可以激活tmux的快捷鍵。注意這里需要按一下然后松開!!!
輸入Ctrl + B,然后再按一下C就新建了一個窗,在左下角可以看到有0、1兩窗。我們可以新建很多個窗運行命令,星號標示當前選中的窗。
輸入Ctrl + B,然后再按一下N可以切換到下一個窗;
輸入Ctrl + B,然后再按一下P可以切換到上一個窗;
輸入Ctrl + B,然后再按一下&刪除當前的窗,會提示你是否刪除,輸入y回車就可以刪除當前的窗,所有窗都刪除完后,tmux的會話也就沒了。
在tmux中運行的程序即使ssh斷開也不會受影響,有需求的可以安裝并使用!