从/ etc / environment中获得一个服务的启动环境

/etc/environment定义的环境variables提供给暴发户服务的最佳方法是什么?

我认为只是采购他们. 在脚本部分不起作用,因为脚本是由sh执行的,这将需要每个定义之前的额外export

    我终于在#upstart IRC频道上得到了答案。 在某些时候,新贵会获得适当的PAM支持,因此可以读取/etc/environment本身。 在那之前,诀窍是用su执行命令。 su使用PAM并设置适当的环境。 例:

     script exec su root -c /usr/sbin/job_needing_envs end script 

    我倾向于使用eval $(cat /etc/environment | sed 's/^/export /')

    它采用/etc/environment每行,预先export并评估它:

     script exec /bin/bash <<'EOT' eval $(cat /etc/environment | sed 's/^/export /') do_what_you_need_to EOT end script 

    将此添加到您的脚本中:

     . /etc/environment export VAR1 VAR2 VAR3 

    其中您需要的variables是指定“VAR1”样式占位符的地方。