作为服务运行时在tomcat.conf中使用命令替换吗?

问题描述 投票:0回答:1

我在使用Amazon Linux 1 AMI构建的AWS实例中安装了tomcat8。在tomcat.conf中,我添加了使用命令替换$()设置的变量,以从AWS参数存储中读取参数,并提供有关数据库URL,名称等的信息。效果很好。每当tomcat启动时,它将运行并解析命令并根据当前参数存储值设置环境变量。然后可以在spring bean中使用它来连接数据库。

最近,我不得不更新为使用Amazon Linux 2 AMI。我想出了如何安装tomcat(8.5),但它现在已作为systemctl服务运行。当启动时,它按原样读取命令替换文本,因此最终将环境变量设置为“ $(.....)”,这显然不起作用。

如果我手动运行/usr/libexec/tomcat/servers start,它会进行替换,但是当我运行systemctl start tomcat.service时,它不会。

我尝试使用jsvc,但这没有什么区别。在读取tomcat.conf并且不执行命令替换后,我可以立即在/usr/libexec/tomcat/preamble中打印出其中一个变量。

有人知道为什么这不再有效吗?有什么方法可以像以前一样在运行时为tomcat设置环境变量?

我在使用Amazon Linux 1 AMI构建的AWS实例中安装了tomcat8。在tomcat.conf中,我添加了使用命令替换$()设置的变量以读取...

amazon-web-services tomcat service systemctl
1个回答
0
投票

所以我想出了一种方法。如果我将文件放在/etc/tomcat/conf.d文件夹中,它将被解析。我将要设置的所有变量都移到了该变量中,并在前面添加了“导出”,这似乎可以做到。

© www.soinside.com 2019 - 2024. All rights reserved.