2016-03-06 83 views
0

根据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.

回答

2

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

此外,回声不能解决环境变量。 Bash是需要systemd过程内reolve TEST

所以,你需要运行以下命令:

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

嘿 - 不能相信我错过了。谢谢 – AlexBrand

+0

使用'set -x'可以帮助调试bash – Robo