创建一个用于‘screen’的 shell 脚本?

创建一个用于‘screen’的 shell 脚本?

我一直在研究如何创建一个 shell 脚本,浏览了包括这个论坛在内的各种论坛,使用各种搜索词,但都没有找到结果。希望我没有重复提问。

我们有一个游戏服务器,在重启或崩溃后必须手动初始化屏幕,但想将我们的几个命令打包成一个脚本以减少停机时间。我想要做的是制作一个脚本,创建一个屏幕会话,切换到它,并在新会话中执行 shell 脚本。

我已经在 shell 脚本中尝试了下面的代码。

#!/bin/sh
screen -S tf2
./startserver.sh

当我执行脚本时,它会创建屏幕‘tf2’并按照我的意愿进入会话。然而,服务器并没有在我想要的地方启动,而是在我执行它的屏幕会话之外启动。我们需要它位于屏幕会话内,这样我们的游戏服务器就可以在线,而无需任何人访问终端。

我还不是 shell 脚本方面的高手,但我愿意学习。我做错了什么吗?还有其他方法吗?

答案1

如概要中所述,man screen如果您想在屏幕上运行命令,则需要将其附加到发出命令的屏幕上。因此,在您的情况下,它看起来像

 #!/bin/sh
screen -S tf2 ./startserver.sh

然而,由于我不知道你的 shell 脚本是否在屏幕的工作目录中,所以这样做更聪明

 #!/bin/sh
screen -S tf2 /full/path/to/startserver.sh

相关内容