Mar*_*c A 6 environment-variables systemd upstart amazon-ec2 init.d
这个问题源于@FrustratedWithFormsDesigner评论。
如何使export
在 init.d 脚本中设置的环境变量可用于在同一个 init.d 脚本中启动的下游进程?
更详细地说,我在 Amazon EC2 实例上并使用 init.d 脚本来控制我的node
.js 服务器,而该服务器又由nodemon
监控文件更改并node
根据需要重新启动的服务器控制。简而言之,我的 init.d 脚本启动nodemon
,然后启动node
. export
在 init.d 脚本中设置的环境变量似乎对 可用nodemon
,但对 不可用node
。我如何使这些环境变量也可用node
?
目前,我的 Amazon EC2 实例中只有 init.d 可用,所以这甚至可以使用 init.d 脚本,如果不能,这是否可以使用 upstart 或最好使用 systemd?
我建议切换到基于 systemd 的 Linux 发行版,例如 Fedora 或 Ubuntu 16.04。systemd
可以轻松地将环境变量传递给您的进程,并且它可以处理自动重新启动失败的进程以及在启动时启动它。systemd 的日志也可以很好地处理日志记录。也没有安装或运行其他任何东西的开销,因为 systemd 是操作系统发行版的一部分。
以下是在单元文件中使用 systemd 设置两个环境变量的示例:
Environment="ONE=one" 'TWO=two two'
Run Code Online (Sandbox Code Playgroud)
完整的文档在这里。
您的问题部分是复杂性之一,因为初始化系统和进程管理器都处理传递环境变量。使用 systemd 作为初始化系统和进程管理器,消除了一层复杂性。
归档时间: |
|
查看次数: |
9133 次 |
最近记录: |