Gnu-Screen

重新附加或創建命名螢幕會話?(或持續的螢幕會話)

  • October 6, 2014

基本上我有一個遠端螢幕會話,我希望自動重新附加到.. 目前我正在使用以下命令(作為 iTerm 書籤或別名)執行此操作

ssh host -t screen -x thesessionname

這很好用,但是如果會話由於某種原因而終止,我希望在下次連接時重新創建它。的-R標誌幾乎screen是完美的:

ssh host -t screen -R -S thesessionname

..但是如果會話已經附加,則進行第二個會話(-R簡單地查找第一個分離的會話,如果沒有找到它會創建一個新的會話)

有沒有辦法讓-R標誌也尋找附加的會話,如果thesessionname不存在則只創建一個新的?

如果這不容易做到,我怎麼能在它死時自動重新創建螢幕會話?也許是一個通過 cron 執行的腳本來查找命名會話,如果它不存在則創建它?

告訴 screen 對嘗試更加堅持:

-D -R
   Attach here and now. In detail this means: If a session is run-
   ning,  then  reattach.  If necessary detach and logout remotely
   first.  If it was not running create it and  notify  the  user.
   This is the author's favorite.

所以將兩者結合起來,你應該有你的解決方案(“-DR”相當於“-D -R”):

screen -DR <yoursession> 

此外並且有用的是,您可以查看正在執行的會話:

screen -ls

幾個不錯的選擇。首先,我最喜歡的:

screen -x -R

這將附加到第一個可用的螢幕會話(如果連接了另一個連接,則共享),如果根本沒有螢幕會話,則啟動一個新會話。

screen -d -RR

相關文件說“重新附加一個會話,並在必要時分離或創建它。如果有多個會話可用,請使用第一個會話。” 基本上,雙 R 使它尋找要附加的第一個會話。

screen -D -RR

“此時此地附上。不管那意味著什麼,就去做吧。” 將分離並遠端註銷任何其他附加的會話並附加到它可以附加的第一個會話。基本上,它需要做任何事情來附加到現有會話,如果那裡沒有任何內容,則創建一個新會話。

第一個(-x -R)最不可能引起問題(不會斷開您的其他連接),但如果有任何要附加的東西,它總是附加到某個東西,如果沒有任何東西要附加,則創建一些東西。

引用自:https://serverfault.com/questions/38417