如何编写包含=的systemd环境变量值

Jer*_*ian 4 linux systemd

在systemd单位文件中,我有一个环境,内容为key=IamValue=abc,如您所见,值是IamValue=abc其中包含=

在这种情况下,如何编写单位文件?

我尝试了以下操作,但似乎无效:

[Unit]
Description=...

[Service]
WorkingDirectory=...
ExecStart=...
Restart=always
RestartSec=10                                          
SyslogIdentifier=...
User=root
Environment=key="IamValue=abc"
Run Code Online (Sandbox Code Playgroud)

Mar*_*erg 5

我测试了这在test.service文件中的工作原理:

[Unit]
Description=Hi

[Service]
Type=oneshot
Environment=key="IamValue=abc"
ExecStart=/bin/bash -c "/bin/echo key:$key"
Run Code Online (Sandbox Code Playgroud)

如果运行该命令然后执行journalctl -u test,则可以看到包含等号的密钥起作用。

我建议对官方的systemd文档进行更新,以更好地阐明这种情况。

  • 有趣的是,我昨天浪费了 2 个小时,因为我写了 Environment=DJANGO_SETTINGS_MODULE="something.settings" 并且 systemd 创建了一个变量 DJANGO_SETTINGS_MODULE,其值为“something.settings”,包括双引号...>___> (2认同)