EnvironmentFile 変数から ExecStart に内部引用符を渡す

EnvironmentFile 変数から ExecStart に内部引用符を渡す

EnvironmentFile には次の内容が含まれています:

EBUSD_OPTS="--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log=\"all notice\" --log=\"update error\""

.service ファイル内:

EnvironmentFile=-/etc/default/ebusd
ExecStart=/usr/bin/ebusd $EBUSD_OPTS

--log= の後の引用符は変更されずに実行ファイルに渡されるはずですが、うまくいかないようです。二重引用符、一重引用符、二重、三重の内側の引用符のエスケープ、外側の単一の引用符など、あらゆるタイプを試しましたが、成功しませんでした。

答え1

EnvironmentFileから外側の引用符を削除します

EBUSD_OPTS=--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log="all notice" --log="update error"

ExecStart に中括弧を追加します。

ExecStart=/usr/bin/ebusd ${EBUSD_OPTS} 

また、中括弧の後に末尾のスペースを入れる必要がありました。

関連情報