Приложение Spring boot как услуга + параметры виртуальной машины

У меня есть загрузочное приложение Spring, которое запускается как служба с использованием Linux systemd.

Он основан на этой документации: http://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

При использовании сценария по умолчанию запускается файл jar. Работает нормально.

/etc/systemd/system/myapp.service:

[Unit]
Description=myapp
After=syslog.target

[Service]
User=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Теперь я хочу добавить опцию VM при запуске jar. Я попытался добавить в проект файл .conf, но ничего не вышло.

/var/myapp/myapp.conf:

JAVA_OPTS=-Xms256M -Xmx512M

Как я могу добавить опцию JVM для запуска приложения с помощью systemd?


person YLombardi    schedule 29.07.2016    source источник


Ответы (3)


Наконец-то я нашел здесь решение: как настроить размер кучи при запуске приложения с весенней загрузкой со встроенным tomcat?

Содержимое моего файла .conf было неправильным. Мне тоже нужно написать это:

export JAVA_OPTS="-Xms256m -Xmx512m"

Теперь, когда я запускаю «service myapp start», он запускается с хорошим размером кучи.

person YLombardi    schedule 01.08.2016

Согласно документация, вы можете просто добавить переменную среды JAVA_OPTS, если вам этого достаточно.

То, как мы запускаем приложения с пользовательскими переменными ENV и systemd, будет выглядеть для вашего проекта следующим образом:

[Unit]
Description=myapp
After=syslog.target

[Service]
User=myapp
ExecStart=source /var/myapp/myapp.conf; java -jar /var/myapp/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

По сути, получение конфигурации ENV напрямую предоставит приложению переменные ENV.

person Ulises    schedule 29.07.2016
comment
Спасибо за Ваш ответ. Я пробовал это, но у меня это не работает. - person YLombardi; 01.08.2016

Еще один хороший способ - создать файл конфигурации myapp.conf в том же каталоге, что и файл myapp.jar.

/var/myapp/

и поместите следующий контент:

JAVA_OPTS="-Xms256m -Xmx512m"

Затем перезапустите приложение.

Обратите внимание, что имя файла конфигурации должно совпадать с именем файла jar, за исключением расширения .conf вместо .jar или .war.

У этого способа есть и другие преимущества:

  • Сохраняйте настройки отдельно только для приложения myapp.
  • У нас также могут быть дополнительные параметры в файле.

Более подробную информацию можно найти здесь.

person Tom    schedule 30.05.2020