最開始接觸screen ,是通過devstack 部署openstack ,Devstack環境中,openstack運行在一個screen中,每個service運行在一個window中 screen 是什麼
系統管理員經常需要SSH 或者telent 遠程登入到Linux 伺服器,經常運行一些需要很長時間才能完成的任務,比如系統備份、ftp 傳輸等等。通常情況下我們都是為每一個這樣的任務開一個遠程終端視窗,因為它們執行的時間太長了。必須等待它們執行完畢,在此期間不能關掉視窗或者中斷連線,否則這個任務就會被殺掉,一切半途而廢了。
GNU Screen是一款由GNU計劃開發的用於命令列終端切換的自由軟體。使用者可以通過該軟體同時串連多個本地或遠端命令列會話,並在其間自由切換。
GNU Screen可以看作是視窗管理器的命令列介面版本。它提供了統一的管理多個會話的介面和相應的功能。
查看目前使用者開啟的所有screen:screen -list
<span style="font-family:SimSun;font-size:18px;"><span style="font-family:Microsoft YaHei;">stack@map-VirtualBox:~/devstack$ screen -listThere is a screen on: 28679.stack (2015年12月24日 15時04分35秒) (Attached)1 Socket in /var/run/screen/S-stack.</span></span>
查看進程28679,可以看到下面有很多個子進程,這些子進程都是用來啟動各個元件服務的window
<span style="font-family:SimSun;font-size:18px;"><span style="font-family:Microsoft YaHei;">stack@map-VirtualBox:~/devstack$ ps -ef|grep 28679stack 28679 28567 0 15:04 ? 00:00:00 SCREEN -c ./stack-screenrcstack 28680 28679 0 15:04 pts/25 00:00:00 bashstack 28681 28679 0 15:04 pts/26 00:00:00 bashstack 28700 28679 0 15:04 pts/27 00:00:00 bashstack 28701 28679 0 15:04 pts/28 00:00:00 bashstack 28702 28679 0 15:04 pts/29 00:00:00 bashstack 28703 28679 0 15:04 pts/30 00:00:00 bashstack 28704 28679 0 15:04 pts/31 00:00:00 bashstack 28705 28679 0 15:04 pts/32 00:00:00 bashstack 28706 28679 0 15:04 pts/33 00:00:00 bashstack 28707 28679 0 15:04 pts/34 00:00:00 bashstack 28708 28679 0 15:04 pts/35 00:00:00 bashstack 28709 28679 0 15:04 pts/36 00:00:00 bashstack 28710 28679 0 15:04 pts/37 00:00:00 bashstack 28727 28679 0 15:04 pts/38 00:00:00 bashstack 28728 28679 0 15:04 pts/39 00:00:00 bashstack 28729 28679 0 15:04 pts/40 00:00:00 bashstack 28731 28679 0 15:04 pts/41 00:00:00 bash</span></span>
devstack 啟動openstack 服務
在devstack目錄下,運行 ./rejoin-stack.sh,進入控制台。
下面的“n-net*”表示的是nova-network服務,前面的9表示這個服務的編號,上面的資訊是這個服務的日誌資訊,可以在這裡查看輸出情況。有錯誤時也可以在這裡查看。 切換不同服務的方法
按 ctrl+a+' (即:ctrl+a+單引號),這是螢幕左下角會顯示“Switch to window:”表示要前往的服務控制台,你可以輸入13,表示看n-cpu (nova-compute)服務的情況。 停止服務的方法
在在相應控制台下使用:ctrl+c,再啟動這個服務是按下“↑”(即向上鍵),然後在按enter鍵。 退出控制的方法
使用ctrl+d. 移動到下一個window ctrl+a+n 移動到前一個window ctrl+a+p 顯示screen中所有window的列表 按 CRTL + a, 稍等一秒,再按 " (shift + ' 所在鍵) (四個鍵連續按是不行的 :))