screen 是一個虛擬終端,我們可以把執行時間很長的命令放在虛擬終端中執行,即使終端斷開,這個虛擬終端也會在后台執行
VPS偵探在剛接觸Linux時最怕的就是SSH遠程登錄Linux VPS編譯安裝程序時(比如安裝lnmp)網絡突然斷開,或者其他情況導致不得不與遠程SSH服務器鏈接斷開,遠程執行的命令也被迫停止,只能重新連接,重新運行。
一、screen命令是什么?
Screen是一個可以在多個進程之間多路復用一個物理終端的全屏窗口管理器。Screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。
安裝screen
[root@localhost ~]$ yum install -y screen // 安裝screen
[root@localhost ~]$ screen # 創建並進入一個虛擬終端 [root@localhost ~]$ screen -S <name> # 創建並進入一個命名的虛擬終端 [root@localhost ~]$ Ctrl + A + D # 先按Ctrl+A再按D,退出虛擬終端,注意並不是關閉,這個虛擬終端還會繼續運行 [root@localhost ~]$ screen -ls # 查看所有虛擬終端 [root@localhost ~]$ screen -r <id> # 進入指定的虛擬終端
查看當前有多少個screen
screen -ls 會有如下顯示: 122128.test (12/04/2017 08:35:43 PM) (Attached)
刪除
screen -X -S 122128 quit
screen命令使用方法?
1、常用的使用方法
1.1 創建screen會話
可以先執行:screen -S lnmp ,screen就會創建一個名字為lnmp的會話。 VPS偵探 http://www.vpser.net/
1.2 暫時離開,保留screen會話中的任務或程序
當需要臨時離開時(會話中的程序不會關閉,仍在運行)可以用快捷鍵Ctrl+a d(即按住Ctrl,依次再按a,d)
1.3 恢復screen會話
當回來時可以再執行執行:screen -r lnmp 即可恢復到離開前創建的lnmp會話的工作界面。如果忘記了,或者當時沒有指定會話名,可以執行:screen -ls screen會列出當前存在的會話列表,
11791.lnmp即為剛才的screen創建的lnmp會話,目前已經暫時退出了lnmp會話,所以狀態為Detached,當使用screen -r lnmp后狀態就會變為Attached,11791是這個screen的會話的進程ID,恢復會話時也可以使用:screen -r 11791
1.4 關閉screen的會話
執行:exit ,會提示:[screen is terminating],表示已經成功退出screen會話。VPS偵探 http://www.vpser.net/
2、遠程演示
首先演示者先在服務器上執行 screen -S test 創建一個screen會話,觀眾可以鏈接到遠程服務器上執行screen -x test 觀眾屏幕上就會出現和演示者同步。
3、常用快捷鍵
Ctrl+a c :在當前screen會話中創建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一個窗口
Ctrl+a p :上一個窗口
Ctrl+a 0-9 :在第0個窗口和第9個窗口之間切換
建議這樣恢復會話 操作
screen -D -r 18471
screen -d -r 18471
用 screen -ls, 顯式當前狀態為Attached, 但當前沒有用戶登陸些會話。screen此時正常狀態應該為(Detached)
此時用screen -r <session-id>,怎么也登不上。最后找到解決方法:screen -D -r <session-id>
-D -r 先踢掉前一用戶,再登陸。