GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de la variable dans le chemin de commande pour ExecStart dans le service systemd

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

Linux
  1. Utilisation de la commande systemctl pour gérer les unités systemd

  2. Tutoriel de commande de service Linux pour les débutants (avec exemples)

  3. Comment corriger une erreur de commande introuvable sous Linux

  4. Comment écrire un script de démarrage pour Systemd ?

  5. Utilisation des variables d'environnement dans la commande cURL - Unix

Gérer le démarrage à l'aide de systemd

Conseils pour utiliser la commande top sous Linux

Utiliser les fonctionnalités de systemd pour sécuriser les services

Comment configurer l'exécution automatique d'un script Python à l'aide de Systemd

Utiliser "${a:-b}" pour l'affectation de variables dans les scripts ?

Utilisation de la commande Linux Dirname dans les scripts Bash