Использование команды замены в tomcat.conf при запуске в качестве службы? - PullRequest
0 голосов
/ 27 марта 2020

У меня был установлен tomcat8 в экземпляре AWS, построенном с использованием Amazon Linux 1 AMI. В tomcat.conf я добавил переменные, которые устанавливались с помощью подстановки команд $ () для чтения параметров из хранилища параметров AWS с информацией об URL базы данных, имени и т. Д. c. Это сработало отлично. Каждый раз, когда запускается tomcat, он запускает и анализирует команды и устанавливает переменные среды на основе текущих значений хранилища параметров. Затем его можно использовать в пружинном компоненте для подключения к базе данных.

Недавно мне пришлось обновить систему до использования Amazon Linux 2 AMI. Я понял, как установить tomcat (8.5), но теперь он работает как сервис systemctl. Когда он запускается, он читает текст подстановки команд как есть, поэтому переменные среды в конечном итоге устанавливаются как «$ (.....)», что, очевидно, не работает.

Если я запускаю вручную /usr/libexec/tomcat/servers start он выполняет замену, но когда я запускаю systemctl start tomcat.service, он этого не делает.

Я пытался использовать jsv c, но это не имеет значения. Я могу распечатать одну из переменных в /usr/libexec/tomcat/preamble сразу после чтения в tomcat.conf, и она не выполняет подстановку команд.

Кто-нибудь знает, почему это больше не работает? Есть ли способ установить переменные окружения во время выполнения для Tomcat, как это было раньше?

1 Ответ

0 голосов
/ 27 марта 2020

Итак, я нашел способ сделать это. Если я помещу файл в папку /etc/tomcat/conf.d, он будет проанализирован. Я переместил все переменные, которые я хотел установить, и добавил «экспорт» впереди, и это, похоже, помогло.

...