Ошибка автозапуска службы Linux после перезагрузки при выполнении условия: «Путь в условии не абсолютный, игнорируется» - PullRequest
0 голосов
/ 14 июля 2020

У меня есть служба с именем 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/to/configuration/file.conf"

Как мне изменить ExecStart для успешного автоматического запуска процесса NodeJS при выполнении условия? Это очень озадачивает, потому что когда я запускаю команду ExecStart в командной строке работает корректно. Кроме того, путь к файлу конфигурации является абсолютным.

(Также обратите внимание, что, поскольку на этом компьютере работает старая версия systemd, я не могу использовать ExecCondition.)

1 Ответ

1 голос
/ 14 июля 2020

Проблема заключается в двойных кавычках в:

"/path/to/configuration/file.conf"

, что заставляет systemd думать, что это не абсолютный путь.

...