带屏幕的 Shell 脚本启动多个命令

带屏幕的 Shell 脚本启动多个命令

我编写了一个简单的脚本,通过屏幕启动两个 minecraft 服务器。我可以正常运行它,但问题是它命中了第一个命令并运行了该行,但它随后进入它创建的屏幕并转到服务器,而从未启动第二行。我如何强制它启动这两个命令?

脚本如下:

#!/bin/bash
#Launches minecraft servers

#Plugin Test Server
screen -S PluginTest java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar /home/kalenpw/TestWorld/spigot-1.10.jar

#Khalidor Server
screen -S Khalidor java -Xms8192M -Xmx9216M -XX:MaxPermSize=128M -jar /home/kalenpw/KhalidorServer/spigot-1.10.jar

发生的情况是第一个 PluginTest 运行正常,但 Khalidor 的第二行从未运行。

答案1

如果在第一个命令末尾添加“&”,它将允许第二个命令运行。因此将第一个命令更改为:

screen -S PluginTest java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar /home/kalenpw/TestWorld/spigot-1.10.jar &

“&” 使命令在后台运行。如果您在第二个命令的末尾也添加一个,则在运行脚本后您将返回到提示符,并且两个命令都将在后台运行。您可以通过运行“jobs”命令来查看它们。

相关内容