2013-08-30 110 views
31

假設我有很多屏幕打開,我想恢復到特定的屏幕會話使用'屏幕-r' 這是我執行屏幕時得到的答案-r 那裏是幾個合適的屏幕上:如何恢復屏幕(GNU屏幕)

12670.pts-8.b-dev03 (Detached) 
23662.pts-9.b-dev03 (Detached) 
502.pts-1.b-dev03 (Attached) 
19972.pts-1.b-dev03 (Detached) 
9414.pts-24.b-dev03 (Attached) 
16607.pts-1.p-dev03 (Detached) 
3015.pts-2.b-dev03 (Detached) 
14313.pts-18.b-dev03 (Attached) 
Type "screen [-d] -r [pid.]tty.host" to resume one of them. 

如何恢復其中之一,可以說最後一個附加。 我曾嘗試 -

screen -r 14313.pts-18.b-dev03 
There is a screen on: 
14313.pts-18.b-dev03 (Attached) 
There is no screen to be resumed matching 14313.pts-18.b-dev03. 

回答

41

的措辭有點兇 - 這種情況是因爲仍然有連接到14313.pts-18.b-dev03一個screen會話,你不能簡單的「簡歷」非獨立式會話。您需要使用另外的-x選項來連接到這屆與第二screen實例(或者,先卸下現有會話):

-x

Attach to a not detached screen session. (Multi display mode). 
$ screen -xr 14313 

如果您想要分離第一個會話,請改爲:

-d -r

Reattach a session and if necessary detach it first. 
$ screen -dr 14313 
+0

會發生什麼我以前的非獨立式屏幕的實例?我實際上希望恢復前一個會話,以便我可以看到進度 –

+0

在多顯示模式下,兩個會話都處於活動狀態並具有寫入權限(因此您可以與兩個實例交互並查看所有連接實例中的輸出),除非您會話只讀(然後第二個實例只能看)。因此,您可以像平常一樣繼續使用-xr,如果您與第二個實例分離,則第一個實例將保留在此處並保持連接狀態。但是,如果您願意,可以使用'-dr'來分離第一個會話(請參閱聯機幫助頁)。 –