Я создал этот сценарий выскочки, который запускает службу Node.js. Но внезапно служба остановилась, и выскочка не смогла ее перезапустить. Теперь, когда я пытаюсь запустить его вручную, он не может распознать мою службу:
start: Unknown job: queue
Скрипт правильно размещен в /etc/init
, и должен иметь правильные права:
-rw-r--r-- 1 root root 200 Aug 7 13:30 queue.conf
Когда я проверяю файл конфигурации с помощью init-checkconf
однако он говорит, что он не может работать как root:
root@production1:~# init-checkconf /etc/init/queue.conf
ERROR: cannot run as root
Что вызывает эту ошибку и как ее решить?
Информация об отладке:
Ubuntu 12.04.3 LTS
root@production1:~# service --version
service ver. 0.91-ubuntu1
редактировать
Вот queue.conf
:
description "Echo.it command queue"
author "Ronni Egeriis Persson <ronni@echo.it>"
stop on shutdown
respawn
respawn 20 5
exec sudo -u beanstalk /usr/bin/node /var/www/queue/index.js >> /var/log/queue.log 2>&1
Команда sudo -u beanstalk /usr/bin/node /var/www/queue/index.js >> /var/log/queue.log 2>&1
отлично работает при ручном запуске.
Что нельзя запустить как root
является init-checkconf
. Бег init-checkconf
с другим пользователем выводит проверку синтаксиса в файл в /tmp
.
В этом случае respawn 20 5
должен был быть respawn limit 20 5
.