17 /etc/environment向新贵服务提供定义的环境变量的最佳方法是什么? 我认为仅.在脚本部分中提供它们是行不通的,因为执行脚本sh需要export在每个定义之前附加一个... upstart — Nikratio source
16 我终于在#upstartIRC频道上得到了答案。在某个时候,新贵将获得适当的PAM支持,因此可以/etc/environment自行读取。在此之前,诀窍是使用su执行命令。su使用PAM,并将建立适当的环境。例: script exec su root -c /usr/sbin/job_needing_envs end script — Nikratio source 感谢您发布答案,您在同一问题上为我提供了帮助。 — Maxim Veksler 2010年 错误:su: must be run from a terminal — Kuf
3 我倾向于使用 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 — 吉尔尼斯 source 为什么您使用exec而不是仅将导出直接放在脚本块中? — 2015年
1 将此添加到您的脚本: . /etc/environment export VAR1 VAR2 VAR3 在其中指定所需变量的位置,以代替“ VAR1”样式的占位符。 — 暂停,直到另行通知。 source 2 这样,我必须手动使新贵配置和/ etc / environment保持同步,这(我认为)并不比两次定义变量更好…… — Nikratio 2010年 我不会使用/etc/environment定义所有需要的变量。保留为静态文件。在我的系统上,我只能找到一些仍在使用它的脚本。创建一个名为like之类的文件/etc/environment.local,然后将变量放入其中并导出,然后获取该文件。然后,您只需维护一个文件。 — 暂停,直到另行通知。 / etc / environment由pam_env.so(而非任何脚本)读取,因此可用于任何登录。不幸的是,仅由新贵启动的程序无法通过该文件访问该文件。 — Nikratio'4