繁体   English   中英

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

[英]Using command substituion in tomcat.conf when running as a service?

我在使用 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,但这并没有什么区别。 我可以在/usr/libexec/tomcat/preamble读取 tomcat.conf 后立即打印出其中一个变量,并且它不执行命令替换。

有谁知道为什么这不再有效? 有没有办法在运行时为 tomcat 设置环境变量,就像它以前的工作方式一样?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM