[Tool] Tmux 使用方式

陳漢庭
Oct 26, 2020

--

封面照片

最近除了手邊的票以外,還有處理一些比較瑣碎的事情,像是要幫QA建立資料,例如100萬筆會員資料,還有QA Team所需要的會員測試帳號等等。由於aws server,以及資料庫都有設定白名單,所以公司以外的網域沒有辦法連,加上如果要在本機匯入大量資料不是很方便,於是最後要了一台原本在處理cloud search的虛擬電腦。

用ssh連線之後正常來說,如果關掉了當前的session,也就是說如果關掉了正在使用的視窗的話,透過這個視窗所執行的所有process會全部不見,這樣一來如果電腦關掉就不能自己背景跑視窗了。

於是我的同事跟我介紹了Tmux,Tmux有一個功能是可以在背景跑process。首先我們要在遠端電腦安裝Tmux,以下為不同Tmux對應不同的安裝指令。

brew install tmux     # For Mac
apt-get install tmux # For Ubuntu
yum install tmux # For CentOS

查看路徑以及開啟新的tmux session。記住一件事情:只要打一次tmux就會新開啟一次session。順道一提,一個session裡面可以有很多個window(視窗),每個windows裡可以有很多個pane(區塊),但目前只需要利用一個session來背景執行,所以暫時沒有要研究wondows跟pane。

which tmux            # 查看安裝位置
tmux # 開啟新的session

最重要的功能,也就是放到背景的功能指令為 ctrl+b、d ,這時候該session就被放到背景裡面。假設我在裡面執行了一個需要跑很久的rake指令,就先執行,可以這樣操作

rake xxxxxxxxx
ctrl+b
d

這樣子這個process就會繼續被執行,只要再下tmux at ,tmux就會attach到剛剛背景的session。由於目前rake xxxxxxxxxx的process是在一台docker中進行的,當我打ps aux (看process的指令)就可以看到有一個rake的process正被執行中

透過 tmux ls 查看所有的 session,以下方例子來說當前有三個tmux session。

.查看所有session

再來我們在tmux環境裡面透過ctrl+b、S 進入tmux列表選擇自己想要進去的session進行操作

透過tmux attach -t [num]進去想去的session

如此一來百萬白絕就可以順利的產出了

關於清除tmux session的指令

tmux kill-session -t [num]  關閉第 [num] 號 session
tmux kill-session -a 關閉除了自己的所有 session

參考資料:LarryOpengate

--

--

陳漢庭
陳漢庭

Written by 陳漢庭

由於零散的紀錄過了一段時間之後就看不懂了,於是為了強迫自己用故事的方式記錄學到的東西,就開啟我的發文之路。

No responses yet