最近除了手邊的票以外,還有處理一些比較瑣碎的事情,像是要幫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。
再來我們在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