簡體   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