Spring Boot Auto перезагрузить себя после обновления JAR - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть Spring Boot JAR на сервере linux, расположенном в каком-то каталоге /dev/ExampleApplication.jar.

Возможно ли для приложения Spring Boot отслеживать этот конкретный JAR на предмет обновления (возможно, изменение контрольной суммы)), а если есть обновление, выключить себя и запустить обновленный JAR?

Я хочу что-то подобное в псевдокоде:

@Scheduled(fixedDelay = 1000)
public void checkForUpdates() {
  long fileChecksum = getJarChecksum();
  if (checksum != fileChecksum) {
    command("java -jar /dev/ExampleApplication.jar");
    context.shutdown();
  }
}

1 Ответ

1 голос
/ 24 сентября 2019

Вы можете использовать inotify-tools для повторного запуска файла jar при каждом его удалении или изменении.

Вам потребуется установить inotify-tools в ваш дистрибутив Linux, еслиэто еще не так.

while inotifywait -e close_write /dev/ExampleApplication.jar; do java -jar /dev/ExampleApplication.jar; done

Параметр -e принимает тип события.Вы также можете посмотреть каталог, чтобы увидеть, если что-либо удалено или создано в этом каталоге.Подробнее о типах событий inotifywait смотрите здесь: https://linux.die.net/man/1/inotifywait

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...