大家在起后臺服務,或者長時間執行某個腳本的時候。
是不是感覺,交互性很差,
有時,想把結果直接在終端上輸出,又怕不小心關閉了終端導致進程退出? (有些sshd服務還會設置連接超時,自動退出終端)
現在用 screen
這個指令可以很好的解決跑后臺服務的尷尬。
命令其實超簡單的:
直接在終端上輸入 screen , 這個時候,服務器端會啟一個新的終端,但這個終端,與之前的普通終端不一樣,它不隸屬于 sshd 進程組,這樣,當本地終端關閉后,服務器終端不會被 kill。
當然,優點還不止這么些,在服務器終端里執行任務時,你甚至可以隨時地切換到本地終端做些其他事情,然后,要回去時,再恢復到剛才已經打開的服務器終端里,如果剛才的任務沒有結束,還可以繼續執行任務。
操作步驟:
首先,進入 screen
-S sessionname終端。(sessionname是為了分辨你的session)
然后按 ctrl + a
,再按 d
鍵暫時退出終端。
當要返回時, 先查看剛才的終端進程ID, screen -list
或直接
screen -r xx
(剛才的sessionname)就可以了
當然,當你開了很多個session后,打算關閉幾個session,可以進入到session后,exit
一下就可以了.
總的來說, screen是可以完全替代 nohup 的,并且本身提供了較復雜的功能,但是我認為,剛才那些簡單的功能足以應付日常運作。
如果對該指令感興趣的朋友,推薦一篇文章:
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
補充:
A: secureCRT鏈接linux服務器時,網絡斷線了,但是服務器上的tty還沒退出,我想重新連接到原來那個tty,可以做到么?
B: 可以啊,你可以安裝一個Screen,就可以享受他給你帶來的方便了。
A:如何創建一個虛擬shell環境?
B:screen -S MyScr (其中“MyScr”是你為這個虛擬shell環境起的名字,可以自定義)
輸入回車之后,你就可以在這個虛擬的shell環境中工作了,你工作的內容都會被一直保留下來。試試吧,在里面敲幾個命令,運行幾個程序,和平常沒有兩樣吧。
A: 如何退出工作環境呢?
B:如果想要退出要怎么辦呢?只要按下Ctrl+A,然后按d,就可以退出剛剛建立的虛擬shell環境了(名字是MyScr)
若干時間后,你又想繼續剛才的工作了,只要再敲:
screen -r MyScr
就可以看到剛剛的界面了。怎么樣,還是很簡單適用的吧,呵呵。
A: 可以不給他起名么?
B:當然,你不給這個虛擬shell環境命名也是沒問題的,如果只有一個虛擬環境的話,也可以這樣用
screen(回車)
工作……退出……
screen -r
繼續工作
系統還會默認用PID號碼表識screen虛擬的shell環境。
例如,我直接用screen命令建立了一個虛擬環境,退出之后,我想查看虛擬環境的情況:
A:如何察看當前有哪些Screen工作環境呢?
B:screen -list
輸出應該是類似下面的:
There is a screen on:
25202.pts-1.firewallX (Detached)
1 Socket in /tmp/screens/S-root.
其中:
“25202”是這個虛擬環境的PID。不信的話,可以ps查看一下,呵呵~
“pts-1”是說你的ssh客戶端登錄的系統端口號是pts-1
“firewallX”是我這臺主機的名字
如果你建立了很多虛擬環境,又沒有為他們命名的話,就只能用PID來識別他們了。(記住這個PID號碼太煩了吧,還是名字好!)
例如,我現在有兩個screen建立的虛擬環境,我輸入:
screen -list
輸出為:
There are screens on:
25202.pts-1.firewallX (Detached)
25403.pts-1.firewallX (Detached)
2 Sockets in /tmp/screens/S-root.
那么,我如果想進入第二個虛擬環境的話,我可以用什么命令呢?答案如下:
screen -r 25403
A:如何創建新的screen呢?
B:如果我登錄進去之后,用ctrl-a c:再創建一個新的虛擬Shell環境,那么這個環境就是在PID為25403的虛擬環境里面的子虛擬環境。
A:如何徹底退出一個screen工作環境呢?
B:Ctrl-D
A:如何在進入工作環境的時候就自動的運行screen呢?
B:可以在~/.bash_profiler里最下面一行添加一句screen
注意事項:關閉secureCRT之前,請先使用 Ctrl-D 退出screen
posted on 2009-06-03 15:15
Blog of JoJo 閱讀(278)
評論(0) 編輯 收藏 所屬分類:
Linux 技術相關 、
每日一記