Я пытаюсь настроить сценарий выскочки для запуска / остановки моего приложения 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
и попробуй еще раз.