systemd 设置环境变量

设置 systemd 的环境变量,有如下几种方式:

  • 1. 在 xxx.service 通过 Environment="MY_VAR_1=VAR_1_VALUE" 设置变量
  • 2. 在 xxx.service 通过 EnvironmentFile=/opt/workspace/my_env 指定配置文件
  • 3.systemctl edit xxx.service 或手动创建 /etc/systemd/system/xxx.service.d/override.conf 文件进行配置

同一个变量,在多个方式同时配置,会存在覆盖。建议只使用一种方式。

方式 1 Environment=

编辑 systemd 的 service 文件,添加 Environment= 形如下:

  • [Service]
  • Environment=“MY_VAR_1=VAR_1_VALUE”
  • Environment=“MY_VAR_2=VAR_2_VALUE”

上述添加了两个环境变量:MY_VAR_1=VAR_1_VALUE 和 MY_VAR_2=VAR_2_VALUE

如需修改环境变量,即修改 service 文件,需要重新 reload

  • systemctl daemon-reload

方式 2 EnvironmentFile=

编辑 systemd 的 service 文件,添加 EnvironmentFile= 形如下:

  • [Service]
  • EnvironmentFile=/opt/workspace/env_test.env
  • EnvironmentFile=-/opt/workspace/env_test_not_exist.env

上述指定了两个设置环境变量的文件:/opt/workspace/env_test.env 和 /opt/workspace/env_test_not_exist.env
需要注意的是,第二个 EnvironmentFile 使用 - 在目录前,作用是忽略文件不存在。

创建 /opt/workspace/env_test.env 格式如下

  • MY_VAR_1=VAR_1_VALUE
  • MY_VAR_2=VAR_2_VALUE

方式 3 创建 xxx.service.d/override.conf

创建这个文件,有两种方式,执行 systemctl edit xxx.service 后,进入 nano 编辑界面保存成文件即可。或者在 xxx.service 同目录下,创建 xxx.service.d 文件夹,在该文件夹下,创建 override.conf (文件名随便,一般为 override.conf )。

创建的文件格式如下:

  • [Service]
  • Environment=“MY_VAR_1=VAR_1_VALUE”
  • Environment=“MY_VAR_2=VAR_2_VALUE”

以 Debian 系统为例,一般 xxx.service 文件在 /etc/systemd/system/ 下,
所以创建的文件路径为 /etc/systemd/system/xxx.service.d/override.conf

引用:

How to set environment variable in systemd service?

发表评论

邮箱地址不会被公开。 必填项已用*标注