自动重新连接到屏幕会话

screen最好的特性之一是它能够从整个会话中分离出来——让所有的windows和程序运行——然后重新连接。

但是,在登录时很容易忘记重新连接,因此配置shell环境很有帮助,以便在登录时自动重新连接到会话。幸运的是,screen提供了一些命令行选项,使得实现这个目标变得非常简单。

在配置shell环境之前,让我们更详细地了解一下分离。要分离一个屏幕会话,输入C-a - d。因为可以在同一台主机上运行和分离多个会话,所以有一种方法可以列出所有已连接和已分离的会话。

要查看列表,输入screen -ls。这将产生类似以下的输出:

屏幕- ls美元

屏幕上有:

1878. ttyp1。examplehost(附加)

2983. ttyp2。examplehost(分离)

2个插座/tmp/uscreens/S-btanaka。

正如您在这个示例中看到的,我正在运行两个屏幕会话。一个是附着的,另一个是分离的。

我通常从各种不同的机器ssh到我的主机。如果我想在每次登录时自动重新连接到屏幕会话,我可以采用两种策略。一种方法简单但有效。另一个稍微高级一些。

我们先来看一个简单的例子。screen-r的默认行为是重新连接到一个分离的进程。如果因为没有分离会话,或者有多个分离会话,或者所有会话都已附加,所以它不能执行此操作,那么它只报告失败,列出会话和退出。这是一种理智而保守的行为,因此我们可以安全地将其添加到$HOME/中。配置文件(假设您正在使用sh或zsh)或$HOME/。bash_profile(如果您使用bash),如下所示:

自动重新连接到任何单独的、分离的屏幕会话。

#如果不能重新连接,列出会话和提示用户。

屏幕- r

当您登录时,screen -r将尝试重新连接。如果失败,您将看到原因和会话列表,并将看到一个新的shell提示符。屏幕将不会重新连接,也不会启动新会话。

更高级的情况更复杂一些。它还试图重新连接到一个单独的、分离的会话,但如果失败,它将采取进一步的操作。如果它在其他地方找到一个附加的会话,它就会分离会话并重新附加到您的当前终端。如果您在离开工作时附加了会话,然后希望在从家里ssh进来时附加会话,那么这是非常方便的。此外,如果没有要重新附加的会话,它将创建一个新会话。要使用此解决方案,请添加以下行:

如果可能,重新连接到一个现有会话并分离该会话

#。如果不可能,创建一个新会话。

if [-z "$STY"];然后

执行屏幕是

fi

本文“自动重新连接到屏幕会话”最初由LinuxWorld——(美国)

加入网络世界社区吧有个足球雷竞技app脸谱网LinkedIn对大家最关心的话题发表评论。
相关:

版权©2006Raybet2

工资调查:结果在