Linux上管理和運行進程除了程序級別的守護進程之外,經常用到的有比如nohup &的方式,以及screen會話的方式,而Tmux正是一個非常優秀的終端進程管理的軟件,和GNU screen類似,Tmux采用BSD協議,並且支持多控制台以及靈活的切換操作,支持屏幕切分,后台輸入命令等,相當於是screen的替代品,相比而言也更加先進,更加合理好用.
安裝方式,在ubuntu下可以使用apt-get的方式安裝,比如: sudo apt-get install tmux 即可
而在CentOS 7.x的系統下可以直接使用yum方式安裝: yum install -y tmux
另外還可以使用源碼的方式編譯,地址:http://tmux.github.io,注意:tmux包依賴於libevent,並且有版本要求,使用apt-get或者yum的方式會自動解決依賴.
下面簡要說一下tmux的使用:
1. 創建新的會話並進入
tmux new -s abc 這樣就創建了名為abc的會話並且進入,進入后可以執行各種任務
2. 會話后台運行
當任務執行的時候按下快捷鍵Ctrl + b激活控制命令,然后按d脫離會話,會話將會在后台運行
3. 查看已經運行的會話
執行 tmux ls 可以查看已有的會話
4. 進入會話
執行 tmux attach -t abc 可以進入會話,或者簡寫為 tmux a -t abc 也是可以的
5. 結束會話以及終端的進程
執行: tmux kill-session -t abc 可以結束掉abc會話,然后通過查看會話命令可以確認;或者也可以先進入會話然后Ctrl+c結束掉終端進程后執行exit終止會話
6. 重命名會話名稱
tmux rename -t abc xyz 這樣會將會話名稱有abc命名為xyz
上面是最基本的操作,其實tmux最重要的操作都在終端內,所有終端內的控制命令都是在按Ctrl + b后才可以執行,比如后台運行會話使用的是Ctrl + b然后再按d,類似的還有比如下面的:
顯示幫助:Ctrl + b -> ?,按q退出幫助;
選擇下一個窗口:Ctrl + b -> n;
執行控制命令:Ctrl + b -> : 然后就可以執行支持的命令比如kill-session等,回車執行;
顯示時鍾:Ctrl + b -> t,按Enter回到終端;
選項卡的方式切換多個會話:Ctrl + b -> s會彈出多個選項卡,回車確認切換的會話
另外還有好多操作,具體都可以通過顯示幫助獲得.
最后舉一個常用的例子,比如我們要在后台執行1個任務,可以分為下面兩步:
tmux new -d -s pytask # -d 后台創建pytask任務 tmux send -t pytask 'python3 timer.py' ENTER
第一個可以默認創建1個掛起的任務,第二個向會話發送自定義的指令,注意后面的ENTER表示換行執行,如果不加的話則只輸入命令並未執行,具體可以通過 tmux a -t pytask 進入確認即可,當任務執行完成,可以使用上面的kill-session結束終端和會話,整個執行過程也和在后台是一樣的.
