Führen Sie mehrere JAR-Dateien nacheinander (nicht gleichzeitig) mithilfe von Shell-Skript und Andockfenster aus

479
jagga

Ich habe 2 JAR-Dateien, sagen abc.jar und xyz.jar. Ich möchte sie nacheinander ausführen.

wenn mein start.sh so ist

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar abc.jar & /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar xyz.jar 

Damit beginnen beide Gläser gleichzeitig.

Wenn mein start.sh so ist

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar abc.jar && /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar xyz.jar 

Nur der erste abc.jar Start.

Auch wenn es eine Möglichkeit gibt, dass xyz.jar nach 5 Minuten abc.jar startet?

Jede Hilfe wird dankbar sein.

0
Wahrscheinlich möchten Sie das && nicht - legen Sie sie einfach in andere Zeilen des Skripts. Wenn Sie möchten, dass zwischen der Ausführung der Zeilen im Skript eine Zeitspanne vergeht, setzen Sie den Ruhezustand ein. Bruce Becker vor 6 Jahren 1
Warum auch das "Docker" im Fragetitel und in den Tags? Fanatique vor 6 Jahren 0

1 Antwort auf die Frage

0
Fanatique

In Ihrem ersten Beispiel:

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar abc.jar & /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar xyz.jar 

Sie starten zuerst abc.jarim Hintergrund (using &) und dann xyz.jardirekt danach, sodass beide gleichzeitig arbeiten.

Im zweiten Beispiel:

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar abc.jar && /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar xyz.jar 

Sie starten abc.jarund Ihr Bash - Skript sagen zu starten, xyz.jarwenn abc.jar Ausfahrten erfolgreich . Also abc.jarmuss aufhören, bevor xyz.jardie Arbeit beginnt.

Ihr zweites Beispiel ist ein gutes Beispiel für den sequentiellen Start. Wenn Sie jedoch beide gleichzeitig arbeiten möchten, müssen Sie nur das zweite starten, um später zu beginnen, wie Sie es in Ihrer Frage gestellt haben:

Auch wenn es eine Möglichkeit gibt, dass xyz.jar nach 5 Minuten abc.jar startet?

Dann ist das erste Beispiel am ehesten einer funktionierenden Lösung. Ich schlage vor, dass Sie sleep 5mnach dem Start abc.jarim Hintergrund eine einfügen :

/usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar abc.jar & sleep 5m /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar xyz.jar 

Dadurch wird Ihr Skript abc.jarim Hintergrund gestartet, 5 Minuten lang im Ruhezustand und dann wird es gestartet xyz.jar(im Vordergrund können Sie es &erneut hinzufügen, wenn Sie es im Hintergrund haben möchten).

Danke Schlaf 5m funktioniert einwandfrei. jagga vor 6 Jahren 0