Linux 故障排除:關閉 SSH 會話後如何保存工作狀態?
大多數時候,我用 SSH 命令行去連接我的遠程伺服器。不幸的是,今天斷電了,網路集線器也關閉了,所以我的SSH會話丟失了。如果你的一個重要工作的SSH會話丟失了你會怎麼辦?這裡有個叫做 Tmux 的簡單工具,它會在 Putty 或者 SSH 會話結束之後保持一個進程記錄你的工作。
Tmux 是一個終端復用器。它支持單個窗口多終端的創建、訪問、控制。Tmux 在你在斷開連接之後繼續運行,當你重新連接就能獲得之前的工作狀態。
下面是具體的操作過程:
首先,在你的遠程計算機裡面安裝 Tmux.
基於 RPM 的系統:
yum install tmux
基於 DEB 的系統:
apt-get install tmux
在安裝 Tmux 之後 SSH 連接到你的遠程計算機上,這裡以 CentOS 7 為例。
ssh root@ip地址
打開你的終端,然後運行 Tmux.
tmux
然後運行你想執行的任務.
這裡我以升級 CentOS 7 為例。
yum update
運行結果:
現在這個更新進程正在運行。然後按下"D"之後按下"Ctrl+B"來離開 tmux 會話.
現在,回到實際的終端,但是此時工作進程仍在 tmux 會話裡面運行。用 SSH 斷開並重新連接到遠程計算機。在終端里輸入 tmux attach
tmux attach
下圖顯示你的工作任務處於什麼狀態
類似的,你可以在 tmux 會話中運行你需要的任務,數目不限。當然,你可以通過 Ctrl-B 和 $ 對每個會話重命名。
你可以查看當前運行的 tmux 會話數目:
tmux list-sessions
結果舉例:
0: 1 windows (created Thu Jan 8 15:13:42 2015) [80x23]
1: 1 windows (created Thu Jan 8 15:20:05 2015) [80x23]
Tmux 的功能遠遠不止以上所介紹的,我們可以在遠程計算機上執行需要長時間執行的任務後斷開連接,在之後的時間我們可以重新登錄後通過 Tmux 查看運行狀態。
你也可以通過以下命令查看更多內容:
man tmux
原文鏈接:http://www.unixmen.com/linux-troubleshooting-keep-process-running-putty-ssh-session-closed/
screen!!!!!!!!
哈哈,沒錯,sreen 也可以。但是 tmux 專門干這個事兒的,更強大。