Я попытался установить следующее в моем служебном файле systemd
Environment=SETTINGS=\'{"a"=1}\'
Но кажется, что обе одинарные кавычки удалены, поэтому я получаю {"a" = 1} в качестве значения для переменной окружения 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}'
Как видите, переменные настроены правильно.
Вы также можете использовать эти переменные в самом модуле:
...
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}
Расширение с фигурными скобками не удаляет кавычки, а другое -. Не уверен, баг это или нет. На странице руководства написано «разделить на пробелы».
Изменить: я запускаю последний git (v216-456-gba58907547).