GNU/Linux >> Tutoriales Linux >  >> Linux

Usando la variable en la ruta de comando para ExecStart en el servicio systemd

No puede usar variables en el comando real. systemd.servicio:

El comando a ejecutar debe ser un nombre de ruta absoluto. Puede contener espacios, pero los caracteres de control no están permitidos.

Es posible que desee envolverlo en un comando de shell (que hace la expansión de parámetros):

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

En lugar de Environment= , usa EnvironmentFile= , para definir múltiples variables de entorno.

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

/etc/sysconfig/customsyslog contendría key=value par, por ejemplo,

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

Linux
  1. 7 trucos útiles para usar el comando wget de Linux

  2. Uso del comando systemctl para administrar unidades systemd

  3. Tutorial de comandos de servicio de Linux para principiantes (con ejemplos)

  4. Cómo establecer variables de entorno para un servicio systemd en CentOS/RHEL 7

  5. Ejemplos del uso del comando tcpdump para solucionar problemas de red

Consejos para usar el comando superior en Linux

Uso de las funciones de systemd para proteger los servicios

Cómo configurar la ejecución automática de un script de Python usando Systemd

¿Usa “${a:-b}” para la asignación de variables en scripts?

¿Cómo escribir un script de inicio para Systemd?

Usando el comando Dirname de Linux en Bash Scripts