Vous ne pouvez pas utiliser de variables dans la commande réelle. systemd.service :
La commande à exécuter doit être un nom de chemin absolu. Il peut contenir des espaces, mais les caractères de contrôle ne sont pas autorisés.
Vous ne voudrez peut-être pas l'envelopper dans une commande shell (qui effectue l'expansion des paramètres) :
ExecStart=/bin/bash -c '/${TESTEXTSERVICESFILES}/syslog/bin/nxlog -c ${TESTCONFDATA}/syslog/nxlog.conf'
Au lieu de Environment=
, utilisez EnvironmentFile=
, pour définir plusieurs variables d'environnement.
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/customsyslog
ExecStart=/bin/echo ${TESTEXTSERVICESFILES}/syslog/bin/nxlog $TESTCONFDATA
/etc/sysconfig/customsyslog
contiendrait key=value
paire, par exemple,
TESTEXTSERVICESFILES=/opt/test/extservices
TESTCONFDATA=/storage/test/conf