我正在远程服务器上运行游戏服务器,我使用独立的屏幕实例使其保持运行。
我现在正在创建一个脚本,可用于关闭服务器,备份所有重要文件并再次启动它,但是我在处理屏幕时遇到了一些困难。
我假设我可以通过在脚本中调用 screen -r 来切换到脚本中的分离屏幕(在服务器已经关闭之后)。
但这似乎不起作用,因为如果我从外部屏幕运行脚本,它只会在该会话中启动服务器。
screen -r
cd ~/servers/StarMade/
sh StarMade-dedicated-server-linux.sh
screen -d
这就是我认为可以解决问题的方法,但事实并非如此。也许有人可以帮助我。我不是 bash 专家。事实上,这可能是我的第一个不包含“Hello World”的 bash 脚本。谢谢。
正如您的示例所示,您的脚本将由您的销售执行,而不是屏幕中的脚本。您需要告诉运行屏幕读取文件并执行它 - 这就是 -X 选项的用途。
Try
tempfile=$(mktemp)
cat > $tempfile <<EOF
cd ~/servers/StarMade/
sh StarMade-dedicated-server-linux.sh
EOF
screen -X readbuf $tempfile
screen -X paste .
rm -f $tempfile
您可以在第二个终端会话中保持屏幕运行,看看会发生什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)