Übergeben von inneren Anführungszeichen aus der Variable „EnvironmentFile“ an „ExecStart“

Übergeben von inneren Anführungszeichen aus der Variable „EnvironmentFile“ an „ExecStart“

In der EnvironmentFile habe ich:

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

In der Servicedatei:

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

Ich würde erwarten, dass die Anführungszeichen nach --log= unverändert an die ausführbare Datei übergeben werden, aber das scheint nicht zu funktionieren. Ich habe alle Arten von doppelten und einfachen Anführungszeichen, doppelte und dreifache Escape-Zeichen für die inneren Anführungszeichen, einfache äußere Anführungszeichen usw. ohne Erfolg ausprobiert.

Antwort1

Entfernen Sie die äußeren Anführungszeichen aus der EnvironmentFile

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

und fügen Sie in ExecStart Klammern hinzu.

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

Ich musste auch nach der Klammer ein Leerzeichen einfügen.

verwandte Informationen