在bash脚本中使用屏幕

我正在远程服务器上运行游戏服务器,我使用分离的屏幕实例使其运行。 我现在正在创build一个脚本,可以用来closures服务器,备份所有重要的文件并重新启动,但是我在处理屏幕时遇到了一些困难。

我认为我可以通过在脚本中调用screen -r来切换到脚本中的分离屏幕(在服务器已经closures之后)。 但是,这似乎并没有工作,因为如果我从外部屏幕运行脚本它只是在该会话中启动服务器。

screen -r cd ~/servers/StarMade/ sh StarMade-dedicated-server-linux.sh screen -d 

这是我认为会做的伎俩,但事实并非如此。 也许有人可以帮我在这里。 我不是一个bash专家。 事实上,这是我的第一个bash脚本,不包括“Hello World”。 谢谢。

Solutions Collecting From Web of "在bash脚本中使用屏幕"

您的脚本(如您的示例)将由您的销售执行,而不是屏幕中的执行。 您需要告诉正在运行的屏幕读取文件并执行它 – 这就是-X选项的用途。

尝试

 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 

你可以让屏幕在第二个终端会话中运行,看看会发生什么。