linux - 如何设置在 Linux 机器上运行的服务要使用的环境变量

标签 linux bash devops

在 Linux 机器上运行的 my-service 需要提供 ENV_VAR 环境变量。如果我在 etc/environment 文件中声明此变量,它会起作用:

vim/etc/环境 然后添加额外的一行:

ENV_VAR="我的值(value)"

最后重新加载:

来源/etc/environment

然后我可以重新启动 my-service :

须藤服务我的服务停止 须藤服务我的服务启动

我想知道我是否可以避免在 etc/environment 文件中声明 ENV_VAR 变量。有没有一种方法可以使用任何其他方法来声明要被 service 看到的环境变量?

最佳答案

因此,如果您想添加一个环境变量,您可以做很多事情:

  1. 编辑 /etc/enviroment (所有用户)
  2. 编辑 /etc/profile (所有用户)
  3. 编辑 ~/.bashrc (只有你)

编辑上述任何文件将确保您每次启动机器时,您的环境都可以访问这些变量。

您还可以编辑 my-servicemy-service 的文件包括(如 Cyrus 所建议)。这意味着如果您对 my-service 的源代码具有写入权限my-service 的程序或文件includes(在它自己执行之前调用),你可以在该文件中添加一行。

您甚至不必编辑文件!每当您启动终端时,只需输入您本应作为命令添加到上述文件之一的文本,即可对环境进行实时更改。这种环境变化就像~/.bashrc一样。更改,因为它只适用于当前用户。如果你打算sudo <command> , 你必须先 sudo su切换到 super 用户用户,然后改变环境。

如果您正在编辑文件或输入命令,我建议使用以下代码行。 export命令将确保环境变量可由 my-service 访问.

export ENV_VAR=value

Related question

关于linux - 如何设置在 Linux 机器上运行的服务要使用的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60939637/

相关文章:

linux - 检查 Linux 中代码的两点之间是否发生抢占

azure - 如何在 Azure DevOps Pipelines 上批量更改审批者?

amazon-web-services - 通过curl命令从本地目录或AWS S3导入rundeck中的作业

linux - 在 USB 的 Linux 内核空间驱动程序中运行供应商命令

linux - 在 httpd.ldap.conf 文件中屏蔽密码

linux - 当文件中的总行数未知时,如何使用 linux 命令提取文件的中间十行?

bash - 使用 VBoxManage 获取正在运行的虚拟机列表

bash - 在 bash 脚本中使用变量名进行编译

正则表达式匹配 bash 变量

docker - Windows操作系统上的Kubernetes集群主节点