web-dev-qa-db-ja.com

実行可能パスは絶対パスではありません:$(どのノード)

アイデアは、ハードコードされたパスの代わりにノードを指す変数を使用することです、私の解決策はこれでしたExecStart="$(which node)" /home/jonma/Development/chewy

しかし、サービスを実行すると、次のエラーが発生します。

feb 08 11:12:51 jonma-VirtualBox systemd[1]: [/lib/systemd/system/chewy.service:2] Executable path is not absolute, ignoring: $(which node) /home/jon
feb 08 11:12:51 jonma-VirtualBox systemd[1]: chewy.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.

パスをハードコーディングせずにこれを実現するにはどうすればよいですか?

7
JonB

systemdは、絶対パスが指定されていないコマンドを受け入れないため、必要な操作を実行するには、bash-ismに依存して、次のいずれかを実行します。

ExecStart=/bin/bash -c '$$(which node) /home/jonma/Development/chewy'

または

ExecStart=/bin/bash -c '`which node` /home/jonma/Development/chewy'

(私は最初の方が好きですが、あなたは何でもできます)

10
aleivag