如何让 GNU screen 命令在每个 BusyBox ash 会话中自动启动?

如何让 GNU screen 命令在每个 BusyBox ash 会话中自动启动?

在安装了 BusyBox 的嵌入式设备上,我想对其进行设置,以便在启动任何 BusyBox 会话时自动启动 gnu screen 命令。

我已经看到我可以将 screen 命令添加到文件中,/etc/profile但是还有其他方法可以做到这一点吗?

答案1

如果您使用 ssh,则可以在连接时运行它而不是 shell(默认)。

ssh -t me@host screen -RD

这将创建一个不存在的新会话,或者以其他方式连接到现有会话。

ssh 的标志-t告诉创建一个 pty,即使它没有启动 shell。您需要它来进行交互使用。

答案2

exec screen -R在设备末尾添加~/.profile:每次登录时,您的会话都会重新附加上次创建的屏幕会话。更准确地说,为了避免screen在您想要读取.profile设置环境变量的非交互式会话中启动,请使用以下命令:

case $- in *i*) exec screen -R;; esac

您仍然可以通过运行来避免在交互式会话中附加到屏幕,ssh -t bash -i因为这会跳过您的.profile.

相关内容