使用ssh遠程連接 linux服務器工作的時候,比如需要編譯某些程序而這時網絡不穩定斷線, 工作就白干了, 又的重新連接重復剛才的工作,這時候screen就可以派上用場了。
養成好習慣多用 screen!
1.安裝screen
---------------------------------
yum install screen
--------------------------------
2.運行 screen
--------------------------------
screen
--------------------------------
3.用法
Ctrl+a 然後按c 建立一個新的screen 會話
Ctrl+a 然後按n 跳轉到下一個screen 會話
Ctrl+a 然後按p 返回到上一個screen 會話
Ctrl+a 然後按d 將當前的screen 會話放在背景執行
Ctrl+a 然後按(大寫)S 分離一個screen 會話出來,分離後用Ctrl+a 然後按tab鍵 在分離出來的各screen間跳轉。
screen -ls 列出當前所有的screen會話
screen -r 進程號 之前Ctrl+a 然後按d 放在背景執行的會話 呼叫回來。
ssh中如果發生了突然斷線 那麼你重新登陸後 screen -ls 會發現 有screen的狀態是處於(Attached)狀態 此刻我們使用 screen -d 將他強行放到背景,然後再用screen -r 進程號將他呼叫回來。
如果 screen -ls 看到有死亡的會話 可以用screen -wipe 進程號 將他殺掉。
eg:
#screen -list可以看到正在運行的screen實例
There is a screen on:
80338.ttyp3.chh (Detached)
1 Socket in /tmp/screens/S-chh.
返回screen -r 80338
徹底退出:#exit
Screen 提供了兩個主要功能:
在一個終端內運行多個終端會話(terminal session)。
一個已啟動的程序與運行它的真實終端分離的,因此可運行於後台。真實的終端可以被關閉,還可以在
稍後再重新接上(reattached)。
簡短實例
開啟 screen:
# screen
在screen 會話中,我們可以開啟一個長時間運行的程序(如top)。Detach 這個終端,之後可以從其他機器
reattach 這個相同的終端(比如通過 ssh)。
# top
現在用Ctrl-a Ctrl-d 來 detach。Reattach 終端:
# screen -r
或更好的:
# screen -R -D
現在attach 到這裡。具體意思是:先試圖恢復離線的screen 會話。若找不到離線的screen 會話,即建立新
的 screen 會話給用戶。
Screen 命令 (在 screen 中)
所有命令都以Ctrl-a 開始。
Ctrl-a ? 各功能的幫助摘要
Ctrl-a c 創建一個新的 window (終端)
Ctrl-a Ctrl-n 和 Ctrl-a Ctrl-p 切換到下一個或前一個 window
Ctrl-a Ctrl-N N 為 0 到 9 的數字,用來切換到相對應的 window
Ctrl-a " 獲取所有正在運行的 window 的可導航的列表
Ctrl-a a 清楚錯誤的 Ctrl-a
Ctrl-a Ctrl-d 斷開所有會話,會話中所有任務運行於後台
Ctrl-a x 用密碼鎖柱 screen 終端
當程序內部運行終端關閉並且你登出該終端時,該 screen 會話就會被終止。
screen 實在是個讓人喜歡的工具,除了在管理遠程會話時給你帶來諸多方便外,今天還讓我發現了一 個很好用的功能,同步顯示你的屏幕給另一個會話。這在給別人處理問題是尤為好用,可以讓對方同步看到你的操作,剩下很多之後的解釋描述工作。
方法:
a.雙方同時登陸系統
b.演示方運行:
screen -S yahunet
c.觀看方運行:
screen -x yahunet