基本上我有一个远程屏幕会话,我希望自动重新附加到.. 目前我正在使用以下命令(作为 iTerm 书签或别名)执行此操作
ssh host -t screen -x thesessionname
这很好用,但是如果会话由于某种原因而终止,我希望在下次连接时重新创建它。的-R
标志几乎screen
是完美的:
ssh host -t screen -R -S thesessionname
..但是如果会话已经附加,则进行第二个会话(-R
简单地查找第一个分离的会话,如果没有找到它会创建一个新的会话)
有没有办法让-R
标志也寻找附加的会话,如果thesessionname
不存在则只创建一个新的?
如果这不容易做到,我怎么能在它死时自动重新创建屏幕会话?也许是一个通过 cron 运行的脚本来查找命名会话,如果它不存在则创建它?
告诉 screen 对尝试更加坚持:
所以将两者结合起来,你应该有你的解决方案(“-DR”相当于“-D -R”):
此外并且有用的是,您可以查看正在运行的会话:
几个不错的选择。首先,我最喜欢的:
这将附加到第一个可用的屏幕会话(如果连接了另一个连接,则共享),如果根本没有屏幕会话,则启动一个新会话。
相关文档说“重新附加一个会话,并在必要时分离或创建它。如果有多个会话可用,请使用第一个会话。” 基本上,双 R 使它寻找要附加的第一个会话。
“此时此地附上。不管那意味着什么,就去做吧。” 将分离并远程注销任何其他附加的会话并附加到它可以附加的第一个会话。基本上,它需要做任何事情来附加到现有会话,如果那里没有任何内容,则创建一个新会话。
第一个(-x -R)最不可能引起问题(不会断开您的其他连接),但如果有任何要附加的东西,它总是附加到某个东西,如果没有任何东西要附加,则创建一些东西。
我用
我不希望我在另一个 shell 上的整个登录都被丢弃,就像
-D
那样,我绝对不希望-x
.