如果满足条件,重启后自动启动 Linux 服务时出错:"Path in condition not absolute, ignoring"

Error autostarting Linux service after reboot if condition is met: "Path in condition not absolute, ignoring"

我有一个名为 MyService 的服务,只有在“已配置!”时才需要自动启动 NodeJS 进程。可以在配置文件中找到。 MyService.service 文件在 Service 部分包含以下内容:

ExecStart=/usr/bin/sh -c "if grep -q 'Configured!' /path/to/configuration/file.conf; then /usr/bin/node /path/to/node/process.js; fi"

但是,问题是NodeJS进程没有自动启动。事实上,当我查看 journalctl 时,我看到以下错误消息:

Path in condition not absolute, ignoring: "/path/to/configuration/file.conf"

如何更改 ExecStart 以在满足条件时成功自动启动 NodeJS 进程? 这很令人费解,因为当我 运行 命令行上的 ExecStart 命令,它可以正常工作。还有,配置文件的路径是绝对路径。

(另外,请注意,由于这台机器 运行 是旧版本的 systemd,我无法使用 ExecCondition。)

问题在于 :

中的双引号
"/path/to/configuration/file.conf"

这让 systemd 认为它不是绝对路径。