基本上我有一个远程屏幕会话,我想自动重新连接到..目前,我通过以下命令(作为一个iTerm书签或别名)
ssh host -t screen -x thesessionname
这工作正常,但如果会议因为任何原因死亡,我希望它在我下次连接时重新创build。 screen
的-R
标志几乎是完美的:
ssh host -t screen -R -S thesessionname
..但是如果会话已经连接,第二个会话被取得(因为-R
简单寻找第一个分离的会话,如果没有发现它创build一个新的)
有没有办法让-R
标志也查找连接的会话,只有创build一个新的,如果thesessionname
不存在?
如果这不是一件容易的事情,我怎么能自动重新创build屏幕会话,当它死亡? 也许一个脚本运行通过cron查找命名的会话,创build它应该不存在?
告诉屏幕试图更持久:
-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.
所以结合这两者,你应该有你的解决scheme(“-DR”相当于“-D -R”):
screen -DR <yoursession>
另外,有用的知道,你可以查看运行会话:
screen -ls
几个很好的select。 首先,我的最爱:
screen -x -R
这将附加到可用的第一个屏幕会话(如果连接了另一个连接,则共享),如果根本没有屏幕会话,则启动一个新会话。
screen -d -RR
对于这样的文档,请参阅“重新附加会话,并在必要时分离或创build该会话。如果有多个会话可用,请使用第一个会话”。 基本上,双R使它寻找第一届会议附加。
screen -D -RR
“现在就附上,无论如何,只要做就行。” 将分离并远程注销任何其他连接的会话,并附加到它可以的第一个会话。 基本上,不pipe需要做什么来附加到现有的会话,并创build一个新的,如果没有什么。
第一个(-x -R)是最不可能导致问题的(不会分离你的其他连接),但是如果有任何东西要附加,只是简单的总是附加到某个东西上,并创build一些东西,如果没有附加的东西。
我用
screen -dRRS sessname
我不希望我的整个login在其他的shell下降,像-D
,我绝对不希望-x
的多重连接模式。