Uruchom wiele plików jar po kolei (nie jednocześnie) za pomocą skryptu powłoki i okna dokowanego

0

Mam 2 pliki jar, które mówią abc.jar i xyz.jar, chcę je kolejno uruchamiać jeden po drugim.

kiedy mój start.sh jest taki

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

ale dzięki temu oba słoiki zaczynają się jednocześnie.

Kiedy mój start.sh jest taki

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

Rozpocznie się tylko pierwszy abc.jar.

Także jeśli istnieje sposób, że xyz.jar uruchamia się po 5 minutach abc.jar?

Każda pomoc będzie mile widziana, dzięki.

jagga
źródło
1
prawdopodobnie nie chcesz && - po prostu umieść je w różnych liniach skryptu. Jeśli chcesz, aby upłynęło trochę czasu między wykonaniem wierszy skryptu, przespaj się.
Bruce Becker
Ponadto, dlaczego dockerw tytule pytania i w tagach?
Fanatique

Odpowiedzi:

0

W twoim pierwszym przykładzie:

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

Najpierw zaczynasz abc.jarw tle (używając &), a potem xyz.jarzaraz potem, więc oba działają jednocześnie.

W drugim przykładzie:

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

Zaczynasz abc.jari każesz skryptowi bash uruchomić, xyz.jargdy abc.jar zakończy się pomyślnie . Dlatego abc.jarmusi się zatrzymać, zanim xyz.jarzacznie działać.

Drugi przykład jest dobrym przykładem sekwencyjnego uruchamiania, jednak jeśli chcesz, aby oba działały w tym samym czasie, tylko drugi zacznij później, tak jak zadałeś pytanie:

Także jeśli istnieje sposób, że xyz.jar uruchamia się po 5 minutach abc.jar?

Wtedy pierwszy przykład jest najbliższy działającemu rozwiązaniu. To, co sugeruję zrobić, to wstawić sleep 5mpo uruchomieniu abc.jarw tle:

/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

Spowoduje to uruchomienie skryptu abc.jarw tle, uśpienie przez 5 minut, a następnie rozpocznie się xyz.jar(na pierwszym planie możesz dodać &ponownie, jeśli chcesz, aby był w tle).

Fanatyczna
źródło
Dzięki temu sen 5m działa idealnie.
jagga