GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan variabel di jalur perintah untuk ExecStart di layanan systemd

Anda tidak dapat menggunakan variabel dalam perintah yang sebenarnya. systemd.layanan:

Perintah untuk mengeksekusi harus berupa nama jalur absolut. Mungkin berisi spasi, tetapi karakter kontrol tidak diperbolehkan.

Anda mungkin tidak ingin membungkusnya dalam perintah shell (yang melakukan ekspansi parameter):

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

Alih-alih Environment= , gunakan EnvironmentFile= , untuk menentukan beberapa variabel lingkungan.

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

/etc/sysconfig/customsyslog akan berisi key=value berpasangan, mis.,

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

Linux
  1. Kelola startup menggunakan systemd

  2. Daftar file menggunakan perintah ls di Linux dengan path lengkap

  3. Systemd:Menggunakan After dan Requires

  1. Menggunakan perintah systemctl untuk mengelola unit systemd

  2. Tutorial Perintah layanan Linux untuk Pemula (dengan Contoh)

  3. Cara memperbaiki kesalahan Perintah tidak ditemukan di Linux

  1. 7 trik praktis untuk menggunakan perintah wget Linux

  2. Cara Menggunakan Perintah Systemctl untuk Mengelola Layanan Systemd

  3. Bagaimana Cara Menulis Script Startup Untuk Systemd?