GNU/Linux >> Znalost Linux >  >> Linux

Použití proměnné v cestě příkazu pro ExecStart ve službě systemd

Ve skutečném příkazu nelze použít proměnné. systemd.service:

Příkaz, který se má provést, musí být absolutní název cesty. Může obsahovat mezery, ale řídicí znaky nejsou povoleny.

Možná to nebudete chtít zabalit do příkazu shellu (který provádí expanzi parametrů):

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

Místo Environment= , použijte EnvironmentFile= , k definování více proměnných prostředí.

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

/etc/sysconfig/customsyslog bude obsahovat key=value pár, např.

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

Linux
  1. 7 praktických triků pro použití příkazu wget pro Linux

  2. Spravujte spouštění pomocí systemd

  3. Použití příkazu systemctl ke správě jednotek systemd

  1. Jak nastavit proměnné prostředí pro službu systemd v CentOS/RHEL 7

  2. Použití proměnných v SQLCMD pro Linux

  3. Vypište soubor pomocí příkazu ls v Linuxu s úplnou cestou

  1. Výukový program příkazů služby Linux pro začátečníky (s příklady)

  2. Jak opravit chybu Příkaz nenalezen v Linuxu

  3. Systemd:Použití After a Requires