我试图设置以下在我的systemd的服务文件
Environment=SETTINGS=\'{"a"=1}\'
但似乎这两个单引号已被删除,所以我得到{“a”= 1}作为环境variables的值SETTINGS
我如何正确设置?
这适用于我:
$ cat /run/user/1000/systemd/user/envtest3.service [Service] Environment=SETTINGS=\'{"a"=1}\' Environment=SETTINGS2='{"a"=1}' Type=oneshot ExecStart=/bin/env
然后
$ systemctl --user start envtest3.service $ journalctl --user -n 2 -- Logs begin at wto 2014-05-27 15:33:38 EDT, end at sob 2014-10-04 11:44:13 EDT. -- paź 04 11:44:13 fedora21 env[27607]: SETTINGS='{"a"=1}' paź 04 11:44:13 fedora21 env[27607]: SETTINGS2='{"a"=1}'
正如你所看到的,variables设置正确。
你也可以在单元中使用这些variables:
... ExecStart=/bin/echo ${SETTINGS} ${SETTINGS2} ExecStart=/bin/echo $SETTINGS $SETTINGS2
这里有令人惊讶的事情:
paź 04 14:27:50 fedora21-amd64 echo[30304]: '{"a"=1}' '{"a"=1}' paź 04 14:27:50 fedora21-amd64 echo[30306]: {"a"=1} {"a"=1}
用大括号扩展不会剥去报价,但另一个。 我不确定这是不是一个错误。 手册页说“分割空白”。
编辑:我是runninng最新的git(v216-456-gba58907547)。