想法是使用指向节点的变量而不是硬编码的路径,我的解决方案是此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.

如何在不对路径进行硬编码的情况下实现这一目标?

最佳答案

systemd将不接受绝对路径未提供的命令,因此要实现所需的功能,您需要依靠bash-ism并执行以下一项操作:
ExecStart=/bin/bash -c '$$(which node) /home/jonma/Development/chewy'
或者
ExecStart=/bin/bash -c '`which node` /home/jonma/Development/chewy'
(我更喜欢第一个,但您可以执行任何操作)

关于linux - 可执行路径不是绝对的,忽略: $(which node),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48684468/

10-13 07:21