Подход, который вы используете для настройки параметров JVM, зависит в основном от вашего варианта использования:
Вставлять параметры каждый раз
Если вы хотите иметь возможность указывать параметры каждый раз при запуске службы, используйте два механизма: переменные среды и параметры командной строки. То, что вы используете, в основном зависит от вкуса или удобства (но параметры командной строки переопределяют настройки переменных среды).
Переменные среды
Вы можете вводить значения, используя переменную среды JAVA_OPTS
. Это определяется как последовательность параметров, передаваемых непосредственно в двоичный файл Java, причем каждый параметр отделяется пробелом.
Параметры командной строки
Вы можете вводить значения, добавляя параметры командной строки в любом из двух форматов:
-Dkey=val
Передает свойство среды Java в двоичный файл java.
-J-X
Передает любой флаг -X
в двоичный файл java, удаляя начальный -J
.
Вставить параметры из файла, который можно изменить
Если вы хотите получить файл в файловой системе, который можно изменить после установки, вам нужно будет использовать способность sbt-native-packager
читать из файла .ini
, чтобы инициализировать значение по умолчанию для параметров Java. Подробности этого можно увидеть по адресу http://www.scala-sbt.org/sbt-native-packager/archetypes/cheatsheet.html#file-application-ini-or-etc-default
Следуя инструкциям и в зависимости от используемого вами архетипа, вы получите файл с /etc/default
, application.ini
или другим произвольным именем, которое будет прочитано сценарием запуска для добавления настроек.
Каждая строка этого файла обрабатывается так, как если бы они были дополнительными параметрами запуска, поэтому по-прежнему применяются те же правила, которые упоминались ранее; например -X
флаги должны быть записаны так, как если бы они были -J-X
.
Внедрение параметров и кода, которые никогда не нужно менять
Вы можете жестко закодировать изменения непосредственно в сценарий оболочки, который запускается для запуска вашего двоичного файла, используя настройку SBT bashScriptExtraDefines
и следуя подробностям на http://www.scala-sbt.org/sbt-native-packager/archetypes/cheatsheet.html#extra-defines
Это самый гибкий вариант с точки зрения возможного (можно написать любой валидный bash-код, и это добавляется в стартовый скрипт). Но он также менее гибкий в том смысле, что впоследствии его нельзя изменить; любые необязательные вычисления должны быть описаны в терминах языка сценариев bash.
person
Gary Coady
schedule
21.08.2015