MENU

systemd 设置环境变量

September 28, 2022 • Read: 126 • 教程·折腾,学习·笔记

设置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_VALUEMY_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?


本文由 ONE 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
如有版权疑问交流,请给我留言:oneisall8955@gmail.com
本文永久链接:https://liuzhicong.cn/index.php/guide/systemd-environment-variable.html

Archives QR Code Tip
QR Code for this page
Tipping QR Code