Скрипт оболочки с экраном, запускающим несколько команд

Скрипт оболочки с экраном, запускающим несколько команд

Я написал простой скрипт для запуска двух серверов Minecraft через screen. Я могу запустить его нормально, но проблема в том, что он попадает на первую команду и отлично выполняет эту строку, но затем попадает на созданный им экран и переходит на сервер, даже не запустив вторую строку. Как заставить его запустить обе команды?

Вот сценарий:

#!/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'.

Связанный контент