systemd-run 在使用 --setenv 时不会设置环境变量



根据 systemd-run 的文档,-setenv 选项可用于"使用指定的环境变量集运行服务进程"。

但是,似乎环境变量实际上对该过程不可用:

# systemd-run -t --setenv=TEST=Success echo TEST:$TEST
Running as unit run-20705.service.
Press ^] three times within 1s to disconnect TTY.
TEST:

我是否误解了--setenv选项的用法?运行 systemd 版本 219。

您需要在运行 systemd 命令之前阻止 bash 解析$TEST

此外,回声无法解决环境变量。在systemd进程中需要bash来解决TEST

因此,您需要运行以下命令:

systemd-run -t --setenv=TEST=Success 'bash -c echo TEST:$TEST'

最新更新