我们已经开始通过创建/etc/init.d/[appname] 脚本并使用类似以下内容执行它来将我们的 EC2 应用程序作为服务运行:
服务 [appname] 启动|停止|重启
但是,执行此操作时,我们的应用无法访问环境变量。进程如何作为服务访问环境变量启动?或者,相反,我们如何设置环境变量,以便它们可以被作为服务运行的进程访问?具体来说,我们依靠这些变量来了解我们在什么环境中运行……知道这一点很好……
最佳答案
程序可以使用 environ 访问其环境变量变量或更常见的是 getenv(3)库函数。
您可以使用/proc 查询某个进程1234 的环境。文件系统,特别是通过 /proc/1234/environ
(请注意条目以 null 终止,因此请阅读手册页)。
/etc/init.d/
中的启动脚本通常是 shell 脚本,因此您可以export FOO=var
来设置环境变量 FOO
到这些脚本中的 var
。 (您需要在脚本本身内添加 export
行,或者从该 init 脚本source
文件执行此操作)。
另见 this question .
关于linux - 如何从在 centos 中作为服务运行的进程访问环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884527/