如何重新连接到由脚本运行的屏幕会话?

如何重新连接到由脚本运行的屏幕会话?

我一直在尝试编写一个脚本来创建屏幕会话并启动游戏服务器,我实际上做到了。但问题是在分离后重新附加到该会话...我知道服务器在与会话分离后正在运行,但是在写入screen -ls我的会话时不会出现。即使我输入也Cntrl+A "不会显示任何会话。尝试screen -r告诉我没有会话,但我 100% 确定有会话,因为服务器仍在运行,并且输入会ps au向我显示该过程。我究竟做错了什么?

此外,创建一个会话并在其中运行服务器,分离然后重新附加工作。只是当在脚本上完成时,它不会重新附加也不会找到它。

答案1

也许您的应用程序并不真正需要屏幕,甚至可以在没有活动会话(例如守护程序)的情况下运行。然后它可以简单地从屏幕上分离,这实际上就完成了。您可能需要指定一些参数以使其在前台运行(如果有这样的选项)。

您可以尝试在屏幕中运行 bash

screen -dmS script bash -c '/execute/shell/script.sh; exec bash'

这样屏幕应该可以生存(使用 bash),这样你就可以看到控制台。

答案2

首先使用以下命令启动新的屏幕会话:

screen -dmS <sessionname> <script_name>

这将创建一个新的独立屏幕会话与制作的 <sessionname>.默认情况下它会自动分离。

稍后你可以您可以随时通过以下方式参加此会议:

screen -r <sessionname>`

为了重新连接到正在运行的会话。

笔记:请使用以下键盘组合:CTRL + A 后按 D分离再次屏幕。

分离意味着您继续在屏幕内运行脚本,而不终止脚本。这意味着您可以稍后随时重新连接。

相关内容