GNU/Linux >> Linux の 問題 >  >> Linux

systemd サービスの ExecStart のコマンド パスで変数を使用する

実際のコマンドでは変数を使用できません。 systemd.service:

<ブロック引用>

実行するコマンドは絶対パス名でなければなりません。スペースを含めることができますが、制御文字は使用できません。

シェルコマンド (パラメーター展開を行う) でラップしたくない場合があります:

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

Environment= の代わりに 、 EnvironmentFile= を使用 、複数の環境変数を定義します。

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

/etc/sysconfig/customsyslog key=value が含まれます ペア、例えば、

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

Linux
  1. Linuxwgetコマンドを使用するための7つの便利なトリック

  2. systemdを使用してスタートアップを管理する

  3. systemctlコマンドを使用してsystemdユニットを管理する

  1. 初心者向けのLinuxサービスコマンドチュートリアル(例付き)

  2. Linux 用 SQLCMD での変数の使用

  3. cURL コマンドでの環境変数の使用 - Unix

  1. Linuxでコマンドが見つからないというエラーを修正する方法

  2. Systemctlコマンドを使用してSystemdサービスを管理する方法

  3. Systemdのスタートアップスクリプトを書く方法は?