2016-03-06 50 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