GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo della variabile nel percorso di comando per ExecStart nel servizio systemd

Non è possibile utilizzare le variabili nel comando vero e proprio. systemd.service:

Il comando da eseguire deve essere un nome di percorso assoluto. Può contenere spazi, ma i caratteri di controllo non sono consentiti.

Potresti non volerlo racchiudere in un comando di shell (che esegue l'espansione dei parametri):

ExecStart=/bin/bash -c '/${TESTEXTSERVICESFILES}/syslog/bin/nxlog -c ${TESTCONFDATA}/syslog/nxlog.conf'

Invece di Environment= , usa EnvironmentFile= , per definire più variabili di ambiente.

[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/customsyslog
ExecStart=/bin/echo ${TESTEXTSERVICESFILES}/syslog/bin/nxlog $TESTCONFDATA

/etc/sysconfig/customsyslog conterrebbe key=value coppia, ad esempio,

TESTEXTSERVICESFILES=/opt/test/extservices
TESTCONFDATA=/storage/test/conf

Linux
  1. Come scrivere uno script di avvio per Systemd?

  2. Come impostare le variabili di ambiente per un servizio systemd in CentOS/RHEL 7

  3. Esempi di utilizzo del comando tcpdump per la risoluzione dei problemi di rete

  4. Utilizzo delle variabili in SQLCMD per Linux

  5. Elenca il file usando il comando ls in Linux con percorso completo

Suggerimenti per l'utilizzo del comando top in Linux

Utilizzo delle funzionalità di systemd per proteggere i servizi

Come configurare l'esecuzione automatica di uno script Python utilizzando Systemd

Usare "${a:-b}" per l'assegnazione di variabili negli script?

Utilizzo del comando Linux Dirname negli script Bash

Utilizzo delle variabili d'ambiente nel comando cURL - Unix