将/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”样式占位符的地方。