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

标签 linux service environment

我们已经开始通过创建/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/

相关文章:

python - 尝试导入 pymc 时出错

service - Neo4j 服务启动失败

python - 当包含目录是 PYTHONPATH 的一部分并且文件存在时,为什么找不到 PYTHONPATH 中的模块?

c# - 环境常量

android - 服务在销毁后被创建两次

r - 修改列表和环境

linux - 如何配置 Apache 2 以运行 Perl CGI 脚本?

linux - 创建/写入文件 x86 Linux

linux - 在 @INC 中找不到 File/Find/Rule.pm

android - android 中具有有限服务的 fragment