因此,我有一个要部署到 Ubuntu 12 服务器的应用程序。 我的应用程序有几个“部分”:
有一个 Web 服务器,作为 upstart 脚本的一部分运行。有 cron 任务。有时我想在 ssh 进入生产机器时运行一些命令行实用程序。
我想要的是单个位置指定环境变量列表(MY_APP_HOME
,,MY_APP_CONFIG_1
等等...),这些变量将被拾取全部上述“部分”:通过 upstart 脚本,通过 cron 作业,通过我 ssh 进入机器时的登录 shell。
因此,问题是:
1) 将它们放置在哪里才是正确的?具体来说 - 是吗/etc/environment
?那不是仅适用于登录会话吗?
2)如果是 /etc/environment
-- 我注意到我无法在那里使用替换或运行逻辑。有没有什么地方可以做到这一点?一组获取源的 shell 命令?
答案1
对于简单程序,使用 /etc/myapp,例如 /etc/wgetrc;复杂程序使用目录 /etc/myapp 或 /etc/myapp.d,例如 /etc/apache2 或 /etc/logrotate.d;目录名中的 .d 通常表示该目录包含许多用于特定情况的配置文件或脚本
我认为使用您自己的文件并在 /home/user/.bashrc 中为用户设置它们比更改系统范围选项更干净。如果您必须将其设置为系统范围,则在 /etc/profile.d/myapp.sh 中设置。