![Shell-Skript mit Bildschirm, das mehrere Befehle startet](https://rvso.com/image/885990/Shell-Skript%20mit%20Bildschirm%2C%20das%20mehrere%20Befehle%20startet.png)
Ich habe ein einfaches Skript geschrieben, um zwei Minecraft-Server über den Bildschirm zu starten. Ich kann es problemlos ausführen, aber das Problem ist, dass es den ersten Befehl ausführt und diese Zeile einwandfrei ausführt, dann aber den von ihm erstellten Bildschirm aufruft und zum Server geht, ohne jemals die zweite Zeile auszuführen. Wie kann ich es zwingen, beide Befehle auszuführen?
Hier ist das Skript:
#!/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
Was passiert, ist, dass der erste PluginTest einwandfrei läuft, die zweite Zeile für Khalidor jedoch nie.
Antwort1
Wenn Sie am Ende des ersten Befehls '&' hinzufügen, kann der zweite Befehl ausgeführt werden. Ändern Sie daher den ersten Befehl wie folgt:
screen -S PluginTest java -Xms1024M -Xmx1024M -XX:MaxPermSize=128M -jar /home/kalenpw/TestWorld/spigot-1.10.jar &
Das '&' bewirkt, dass der Befehl im Hintergrund ausgeführt wird. Wenn Sie auch am Ende des zweiten Befehls eins hinzufügen, werden Sie nach der Ausführung Ihres Skripts zu einer Eingabeaufforderung zurückgeleitet und beide Befehle werden im Hintergrund ausgeführt. Sie können sie sehen, indem Sie den Befehl 'jobs' ausführen.