変数を使用した作業ディレクトリの設定

変数を使用した作業ディレクトリの設定

環境変数を使用してサービス作業ディレクトリを設定するには?以下は、サービス構成の例です。

[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=${MYWORKINGDIR}

と同様のエラーが発生しますnot an absolute path。先頭にスラッシュを追加するとエラーは「修正」されますが、パスはまだ見つかりません。

[Service]
Environment=MYWORKINGDIR=/tmp
WorkingDirectory=/${MYWORKINGDIR}

可能ですか?どのディレクティブが環境変数を使用できるか使用できないかについての文書は不明です。

http://www.freedesktop.org/software/systemd/man/systemd.exec.html

答え1

可能ですか?

いいえ、できません。

あなたはそれを使用することができます:

  • ~
  • 絶対ディレクトリパス
  • -絶対ディレクトリパス

また、WorkingDirectory理解指定子

答え2

私が見つけた解決策の1つは、WorkingDirectory =にシンボリックリンクを指定し、サービスを開始する前にシンボリックリンクを変更することでした。

私はそれが同じではないことを知っていますが、あなたと同じ方法で私が解決しようとした問題を解決しました。

答え3

すべての遅れて来た人のためにここに役立つ解決策があります。https://unix.stackexchange.com/a/742644/92366

簡単に言えば、複雑すぎる必要がない場合は、次のように使用できます。

ExecStart=/bin/bash -c "cd \"/path/${variable_subpath}/\";echo \"${PWD}\";"

関連情報