Spring загрузочное приложение как сервис + VM Options

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

Он основан на этой документации: 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 Option, когда jar начнется. Я пытался добавить файл.conf в проект, но он не работает.

/var/myapp/myapp.conf:

JAVA_OPTS=-Xms256M -Xmx512M

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

2 ответа

Решение

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

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

export JAVA_OPTS="-Xms256m -Xmx512m"

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

Согласно документации вы можете просто добавить переменную окружения 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 приложению

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

/var/myapp/

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

JAVA_OPTS="-Xms256m -Xmx512m"

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

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

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

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

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

Другие вопросы по тегам