在 Linux 机器上运行的 my-service
需要提供 ENV_VAR
环境变量。如果我在 etc/environment
文件中声明此变量,它会起作用:
vim/etc/环境
然后添加额外的一行:
ENV_VAR="我的值(value)"
最后重新加载:
来源/etc/environment
然后我可以重新启动 my-service
:
须藤服务我的服务停止
须藤服务我的服务启动
我想知道我是否可以避免在 etc/environment
文件中声明 ENV_VAR
变量。有没有一种方法可以使用任何其他方法来声明要被 service
看到的环境变量?
最佳答案
因此,如果您想添加一个环境变量,您可以做很多事情:
- 编辑
/etc/enviroment
(所有用户) - 编辑
/etc/profile
(所有用户) - 编辑
~/.bashrc
(只有你)
编辑上述任何文件将确保您每次启动机器时,您的环境都可以访问这些变量。
您还可以编辑 my-service
或 my-service
的文件包括(如 Cyrus 所建议)。这意味着如果您对 my-service
的源代码具有写入权限my-service
的程序或文件includes(在它自己执行之前调用),你可以在该文件中添加一行。
您甚至不必编辑文件!每当您启动终端时,只需输入您本应作为命令添加到上述文件之一的文本,即可对环境进行实时更改。这种环境变化就像~/.bashrc
一样。更改,因为它只适用于当前用户。如果你打算sudo <command>
, 你必须先 sudo su
切换到 super 用户用户,然后改变环境。
如果您正在编辑文件或输入命令,我建议使用以下代码行。 export
命令将确保环境变量可由 my-service
访问.
export ENV_VAR=value
关于linux - 如何设置在 Linux 机器上运行的服务要使用的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60939637/