systemd-运行 使用 --setenv 时不设置环境变量

systemd-run does not set environment variables when using --setenv

根据 systemd-运行 文档,-setenv 选项可用于 "Run the service process with the specified environment variables set"。

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

# 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

另外,echo 无法解析环境变量。 systemd 进程中需要 Bash 来解析 TEST

因此您需要运行以下内容:

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