如何从centos中作为服务运行的进程访问环境变量?

时间:2013-02-14 21:38:42

标签: linux service environment

我们已经开始将EC2应用程序作为服务运行,方法是创建一个/etc/init.d/ [appname]脚本并使用以下内容执行它:

service [appname] start | stop | restart

但是,在执行此操作时,我们的应用无法访问环境变量。如何在服务访问环境中启动流程?或者,相反,我们如何设置环境变量以便它们可以作为服务运行的进程访问?具体来说,我们依靠这些变量来了解我们正在运行的环境......这很有用......

1 个答案:

答案 0 :(得分:1)

程序可以使用environ变量或更常见的getenv(3)库函数来访问其环境变量。

您可以使用/proc文件系统查询某个进程1234的环境,特别是通过/proc/1234/environ(请注意这些条目为空终止,因此请阅读手册页。)

/etc/init.d/中的起始脚本通常是shell脚本,因此您可以export FOO=var在这些脚本中将环境变量FOO设置为var。 (您需要在脚本本身内添加export行,或者从{init}脚本中添加source文件。

另见this question