我正在尝试使用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应用程序才有问题。
更新 导出技巧无济于事
答案 0 :(得分:0)
也许对某人会有帮助。 主要问题是使用sudo启动Java应用程序。 删除sudo之后,变量变得可用。