В вашем первом примере:
/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
(на переднем плане вы можете добавить &
снова, если хотите, чтобы он был в фоновом режиме).