Файл Systemd .service, не работающий

Я пытаюсь автоматически выполнить следующую команду на начальной загрузке системы с systemd.

/usr/bin/node /var/www/html/rest-api/dist/index.js

Я проверил работы команды путем выполнения его вручную, но когда я пытаюсь инициировать его с a rest.service файл я получаю ошибки.

rest.service:

[Unit]
Description=REST API
After=network.target

[Service]
ExecStart=/usr/bin/node /var/www/html/rest-api/dist/index.js
Restart=always
User=nobody
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/rest-api/dist

[Install]
WantedBy=multi-user.target

journalctl -u rest-api вывод:

Где rest.service Пользователь и Группа = никто:

Oct 06 02:10:28 ip-172-31-26-208 systemd[7172]: rest-api.service: Failed at step GROUP spawning /usr/bin/node: No such process
Oct 06 02:10:28 ip-172-31-26-208 systemd[1]: rest-api.service: Main process exited, code=exited, status=216/GROUP
Oct 06 02:10:28 ip-172-31-26-208 systemd[1]: rest-api.service: Unit entered failed state.
Oct 06 02:10:28 ip-172-31-26-208 systemd[1]: rest-api.service: Failed with result 'exit-code'.
Oct 06 02:10:29 ip-172-31-26-208 systemd[1]: rest-api.service: Service hold-off time over, scheduling restart.
Oct 06 02:10:29 ip-172-31-26-208 systemd[1]: Stopped REST API. 

Где rest.service Пользователь и Группа = корень:

Oct 06 02:20:11 ip-172-31-26-208 systemd[1]: Started REST API.
Oct 06 02:20:11 ip-172-31-26-208 systemd[1]: rest-api.service: Main process exited, code=exited, status=200/CHDIR
Oct 06 02:20:11 ip-172-31-26-208 systemd[1]: rest-api.service: Unit entered  failed state.
Oct 06 02:20:11 ip-172-31-26-208 systemd[1]: rest-api.service: Failed with  result 'exit-code'.
Oct 06 02:20:12 ip-172-31-26-208 systemd[1]: rest-api.service: Service hold-off > time over, scheduling restart.
Oct 06 02:20:12 ip-172-31-26-208 systemd[1]: Stopped REST API.

Какие-либо идеи, как зафиксировать?

6
задан 7 October 2016 в 00:35

1 ответ

code=exited, status=200/CHDIR Ваше ключевое сообщение об ошибке.

Это указывает, что /var/www/rest-api/dist не существует или не доступен в то время, когда Ваша услуга пытается работать.

, Если это смонтировано по сети, After=network.target, не обязательно означает, что любое данное сетевое монтирование было смонтировано. Даже возможно, что медленное для запуска локального диска еще не могло бы быть смонтировано. Чтобы видеть, испытываете ли Вы состояние состязания, попытайтесь добавить задержку или возможно использовать RequiresMountsFor=, или даже ConditionPathExists=.

источник: https://www.freedesktop.org/software/systemd/man/systemd.unit.html

5
ответ дан 23 November 2019 в 07:54

Другие вопросы по тегам:

Похожие вопросы: