昨天在 PTTFreeBSD 板看到一個問題,大概是說如果目前的網路環境不太穩定,很容易斷線,那在利用 ports 安裝東西時一旦斷線不就要重來再安裝嗎?有沒有辦法讓這安裝的過程接續下去?熱心的板友回覆說,可以利用 Screen 試看看!因此在這記錄一下 Screen 的安裝與簡易操作說明。


1. 開始安裝 Screen


安裝的部份請愛用 ports 來安裝,如下 ( 目前的版本為 screen-4.0.3 )



# cd /usr/ports/sysutils/screen/
# make install clean
# rehash


2. 開始使用 Scrren


要使用 Screen 很簡單,假設現在我已經切換為 root 的身份了,要開始在 Screen 的環境下操作,那就只需要打入 screen 就好


# screen

接下來應該就會看到 Screen 的一些 License 訊息了,按一下 Enter 就好。( 最後一行這是怎麼一回事 XD ... Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to screen@uni-erlangen.de )


從現在開始呢,你所做的事情都已經被視為一個 Session 存在系統中,就算連線中斷了,下次還是可以有辦法「接續」回來喔!那假設我們不幸已經斷線了,該怎麼去接續呢?


3. 接續上次的連線


假設我目前已經斷線了,那此時就要先看看目前有哪些被保留的 Session 。利用下列指令來查看目前有多少 Session 被保留中


# screen -ls
There is a screen on:
75782.ttyp0.dns (Attached)
1 Socket in /tmp/screens/S-root.

從上面的訊息來看,目前只有一個使用 screen 的 session ,且狀態是在 Attached 中。也就是接續連線中,如果訊息是 Detached 就表示沒接上喔


此時,我們來測試看看 Screen 是否有生效,直接把 pietty 等 ssh 連線軟體關掉。接下來再重新連回 Server 看看,然後我們再下一次指令


# screen -ls
There is a screen on:
75782.ttyp0.dns (Detached)
1 Socket in /tmp/screens/S-root.

看到了嗎?目前的狀態已經更改為 Detached 囉,該是 Screen 發揮功能的時候了。因為目前只有一個連線,我們可以直接用下列指令接上


# screen -r

有沒有發現畫面已經回復到上次斷線前的情形了!傑克,這真是太神奇了 ... 這樣一來就解決了原來發問者的問題了不是嗎?不過那要是有二個以上的 Session 被保留住,那它怎麼知道要接續哪一個呢?


有發生這種情形,screen -r 就派不上用場了,還得要指定特定的 Session 才行



# screen -ls
There is a screen on:
75782.ttyp0.dns (Detached)
1 Socket in /tmp/screens/S-root.
# screen -r 75782

每個被保留的 Session 前面都有一個編號,只要加個 -r 參數指定後,就會接續到特定的 Session 囉!


但要是發現,明明有 Session 被保留住,但是用 screen -r 就無法接續上怎麼辦?這時就要改用其它的參數囉,如下列所示



# screen -r
There is a screen on:
75782.ttyp0.dns (Attached)
There is no screen to be resumed.
# screen -d -r

如果要離開 Screen 的環境的話,就像平常一樣利用 exit 就可以囉。不過有重開機情況之下,Screen 所保留的 Session 會被清除唷。如果此時還是有 Screen 的紀錄沒有被清除乾淨的話,利用 wipe 參數就可以了!


# screen -wipe


[1] Debian Wiki - Screen

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Bojack 的頭像
    Bojack

    從有為青年變成有為中年男子的生活札記

    Bojack 發表在 痞客邦 留言(0) 人氣()