systemd 服务文件中设置的环境变量未设置

systemd 服务文件中设置的环境变量未设置

我遇到的问题是,当我启动服务时,我在服务文件中设置的环境变量未设置。服务文件如下

[Unit]
Description=<DESCRPITON>
After=podman.socket
Requires=podman.socket


[Service]
Environment=DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
TimeoutStartSec=0
ExecStart=/usr/bin/<BINARY_NAME>
Restart=always
Type=notify
NotifyAccess=all
User=<USER>


[Install]
WantedBy=multi-user.target

如果我使用 设置环境变量,systemctl --user set-environment DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock它就可以工作。但是系统重启后就不行了,因为出于某种原因信息丢失了。

我必须以用户身份并在用户下运行该服务,因此它以运行systemctl enable --now serivce-name.service

我看过如何在 systemd 服务中设置环境变量?但无法从这里找到解决方案。我考虑添加一个配置文件,但对于单个环境变量来说,这似乎有点太多了。

如果相关的话,它将在 Fedora 和 RedHat (8.8) 上运行。

相关内容