web-dev-qa-db-fra.com

Le chemin exécutable n'est pas absolu, en ignorant: $ (quel nœud)

L'idée est d'utiliser une variable pointant vers le nœud au lieu du chemin codé en dur, ma solution était cette ExecStart="$(which node)" /home/jonma/Development/chewy

Mais lorsque j'exécute le service, j'obtiens l'erreur suivante:

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.

Comment puis-je y parvenir sans coder en dur le chemin?

7
JonB

systemd n'acceptera pas les commandes qui ne sont pas données avec un chemin absolu, donc pour accomplir ce que vous voulez, vous devez vous fier à bash-ism et faire l'une des choses suivantes:

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

ou

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

(j'aime mieux le premier, mais vous pouvez en faire un)

10
aleivag