Назад | Перейти на главную страницу

Upstart: не может работать как root

Я создал этот сценарий выскочки, который запускает службу 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.