У меня есть 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?
Любая помощь будет оценена, спасибо.
docker
в заголовке вопроса и в тегах?Ответы:
В вашем первом примере:
Вы первый старт
abc.jar
в фоновом режиме (используя&
), а затем вы начинаетеxyz.jar
сразу после этого они оба работают одновременно.Во втором примере:
Ты начинаешь
abc.jar
и скажите, что ваш bash скрипт запускаетсяxyz.jar
когдаabc.jar
успешно завершается , таким образомabc.jar
нужно остановиться раньшеxyz.jar
начинает работать.Ваш второй пример является хорошим примером последовательного запуска, однако, если вы хотите, чтобы они оба работали одновременно, просто второй, чтобы начать позже, как вы задали в своем вопросе:
Тогда первый пример наиболее близок к рабочему решению. Что я предлагаю вам сделать, это вставить
sleep 5m
после того, как вы начнетеabc.jar
на заднем фоне:Это заставит ваш скрипт начать
abc.jar
в фоновом режиме, спать в течение 5 минут, а затем он начнетxyz.jar
(на переднем плане вы можете добавить&
еще раз, если вы хотите это в фоновом режиме).источник