我有一个在启动时运行的服务,在该服务中它在后台调用bash脚本,该脚本导出一些环境变量。我遇到的问题是那些环境变量没有被发送到后台进程的父级,因此一旦我的脚本执行完毕,它们就消失了。
另外,在脚本运行之后,服务会调用另一个脚本来启动我拥有的应用程序。该应用程序需要访问那些环境变量。
我运行它的RHEL系统意味着永远不会被用户登录,它只会启动并启动应用程序。我知道,父进程/ shell的环境变量实际上不能由子后台进程shell设置。
我需要一种通过服务调用的脚本来执行此操作的方法(虽然不一定在后台运行),而不是通过将其添加到服务中(对我也不起作用),而不是将其存储在/etc/environment
或中.profile
或诸如此类的东西。
在我的服务中,我尝试添加环境变量(不是我想做的):
export TEST=192.168.1.1
我也在我的服务中尝试过此操作:
TEST=192.168.1.1
export TEST=${TEST}
我尝试更改服务调用bash脚本的方式:
/bin/asdf/script &
我也试过采购的脚本,使其在同一个外壳(这是我从运行了此):
. ./bin/asdf/script
#I'm very confused why this didn't work
我还发现这看起来很有趣,但在我看来并没有真正实现。