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

Запустите node.js из выскочки (ubuntu 12.04)

Я пытаюсь настроить сценарий выскочки для запуска / остановки моего приложения node.js.

Вот мой сценарий выскочки:

#!upstart

description "node.js server"
author "marduk"

start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60

script
        export HOME="/home/domains/srg-internal-dev"

        echo $$ > /var/run/node-srg-internal-dev.pid
        exec sudo -u www-data /usr/bin/node /home/domains/srg-internal-dev/api/server.js >> /home/domains/srg-internal-dev/node.log
2>&1
end script

pre-start script
        echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /home/domains/srg-internal-dev/node.log
end script

pre-stop script
        rm /var/run/node-srg-internal-dev.pid
        echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /home/domains/srg-internal-dev/node.log
end script

Я проверил этот файл скрипта:

$ init-checkconf /etc/init.d/nodesrg.conf

Файл /etc/init.d/nodesrg.conf: синтаксис в порядке

Но когда я пытаюсь запустить узел, я получаю:

$ start nodesrg
start: Unknown job: nodesrg

Что я делаю не так? ;)

Попробуйте переместить noderg.conf в /etc/init, а не /etc/init.d. Init.d - это то место, где идут сценарии в стиле SYSV, конфигурация выскочки принадлежит первому.

Использовать initctl list чтобы убедиться, что он отображается как служба-выскочка после перемещения файла.

Если это не так, вы можете использовать initctl reload-configuration и попробуй еще раз.