Запускать несколько JAR-файлов последовательно (не одновременно), используя сценарий оболочки и докер

0

У меня есть 2 jar-файла: abc.jar и xyz.jar, я хочу запускать их последовательно один за другим.

когда мой start.sh такой

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

но при этом обе банки запускаются одновременно.

Когда мой start.sh такой

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

Только первый abc.jar старт.

Также есть ли способ, чтобы xyz.jar запускался через 5 минут после abc.jar?

Любая помощь будет оценена, спасибо.

jagga
источник
1
Вы, вероятно, не хотите & amp; & amp; - просто поместите их в разные строки сценария. Если вы хотите, чтобы промежуток времени между выполнением строк в сценарии проходил, поместите его в режим сна.
Bruce Becker
Кроме того, почему docker в заголовке вопроса и в тегах?
Fanatique

Ответы:

0

В вашем первом примере:

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

Вы первый старт abc.jar в фоновом режиме (используя & ), а затем вы начинаете xyz.jar сразу после этого они оба работают одновременно.

Во втором примере:

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

Ты начинаешь abc.jar и скажите, что ваш bash скрипт запускается xyz.jar когда abc.jar успешно завершается , таким образом abc.jar нужно остановиться раньше xyz.jar начинает работать.

Ваш второй пример является хорошим примером последовательного запуска, однако, если вы хотите, чтобы они оба работали одновременно, просто второй, чтобы начать позже, как вы задали в своем вопросе:

Также есть ли способ, чтобы xyz.jar запускался через 5 минут после abc.jar?

Тогда первый пример наиболее близок к рабочему решению. Что я предлагаю вам сделать, это вставить sleep 5m после того, как вы начнете abc.jar на заднем фоне:

/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

Это заставит ваш скрипт начать abc.jar в фоновом режиме, спать в течение 5 минут, а затем он начнет xyz.jar (на переднем плане вы можете добавить & еще раз, если вы хотите это в фоновом режиме).

Fanatique
источник
Спасибо спать 5м работает отлично.
jagga