从Systemd服务中看不到Spring的环境变量

时间:2019-05-27 16:46:41

标签: java linux spring spring-boot systemd

我正在尝试使用ubuntu的systemd服务运行spring boot应用程序。 在我的服务文件中,我有ExecStart变量

ExecStart=/bla/run.sh

和变量:

Environment="DB_HOSTNAME=ip"
Environment="DB_PORT=5432"
...

(我尝试了两种变体:带括号和不带括号)

我的sh文件如下:

#!/bin/sh

echo jdbc:postgresql://${DB_HOSTNAME}:${DB_PORT}/${DB_NAME}
sudo /usr/bin/java -jar bla.jar

内部sh变量也可用,但是spring应用程序不处理它们。与活动配置文件变量相同。

我认为问题出在变量的范围上,我试图将它们从主要变量传递给另一个sh。但是在另一个脚本中它们是可用的,所以只有Spring应用程序才有问题。

更新 导出技巧无济于事

1 个答案:

答案 0 :(得分:0)

也许对某人会有帮助。 主要问题是使用sudo启动Java应用程序。 删除sudo之后,变量变得可用。