标签: linux service environment
我们已经开始将EC2应用程序作为服务运行,方法是创建一个/etc/init.d/ [appname]脚本并使用以下内容执行它:
service [appname] start | stop | restart
但是,在执行此操作时,我们的应用无法访问环境变量。如何在服务访问环境中启动流程?或者,相反,我们如何设置环境变量以便它们可以作为服务运行的进程访问?具体来说,我们依靠这些变量来了解我们正在运行的环境......这很有用......
答案 0 :(得分:1)
程序可以使用environ变量或更常见的getenv(3)库函数来访问其环境变量。
您可以使用/proc文件系统查询某个进程1234的环境,特别是通过/proc/1234/environ(请注意这些条目为空终止,因此请阅读手册页。)
/proc/1234/environ
/etc/init.d/中的起始脚本通常是shell脚本,因此您可以export FOO=var在这些脚本中将环境变量FOO设置为var。 (您需要在脚本本身内添加export行,或者从{init}脚本中添加source文件。
/etc/init.d/
export FOO=var
FOO
var
export
source
另见this question。