Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从systemd服务中看不到Spring环境变量_Java_Linux_Spring_Spring Boot_Systemd - Fatal编程技术网

Java 从systemd服务中看不到Spring环境变量

Java 从systemd服务中看不到Spring环境变量,java,linux,spring,spring-boot,systemd,Java,Linux,Spring,Spring Boot,Systemd,我正在尝试用ubuntu的systemd服务运行SpringBoot应用程序。 在我的服务文件中,我有ExecStart变量 ExecStart=/bla/run.sh 和变量: Environment="DB_HOSTNAME=ip" Environment="DB_PORT=5432" ... (我尝试了两种变体:带大括号和不带大括号) 我的sh文件看起来像: #!/bin/sh echo jdbc:postgresql://${DB_HOSTNAME}:${DB_PORT}/${DB_

我正在尝试用ubuntu的systemd服务运行SpringBoot应用程序。 在我的服务文件中,我有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应用程序中

更新
导出技巧没有帮助

也许对某人有帮助。 主要问题是使用sudo启动java应用程序。
删除sudo变量后,就可以使用了。

也许它会对某些人有所帮助。 主要问题是使用sudo启动java应用程序。
删除sudo变量后,变量变为可用。

您的SpringBoot应用程序似乎无法解析占位符,因为它们仅在父进程范围内。尝试导出它们(
Environment=“export DB\u HOSTNAME=ip”
)并运行应用程序。它应该可以工作。您的SpringBoot应用程序似乎无法解析占位符,因为这些占位符仅在父进程范围内。尝试导出它们(
Environment=“export DB\u HOSTNAME=ip”
)并运行应用程序。它应该会起作用。