设置 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
引用: