Я запускаю веб-сайт, который использует Node.JS на сервере Ubuntu (14,04 LTS). После перезагрузки компьютера мой текущий рабочий процесс состоит в том, чтобы вручную запустить сервер вручную, выполнив команду
$ forever start app.js
Сейчас я пытаюсь автоматизировать этот процесс с помощью Upstart. Я использовал chkconfig на RHEL раньше, но я новичок в Upstart. Я написал следующий скрипт и сохранил его в /etc/init/myapp.conf.
#!upstart
description "Start the node process with Upstart"
start on startup
stop on shutdown
expect fork
env APP_DIR="/path/to/app"
env NODE_BIN="/usr/local/bin"
env HOME_DIR="/home/admin"
script
date
echo "Starting"
su admin
cd $APP_DIR
PATH=$NODE_BIN:$PATH
HOME=$HOME_DIR
echo "Running forever start"
forever start app.js
end script
pre-stop script
date
echo "Stopping"
su admin
cd $APP_DIR
PATH=$NODE_BIN:$PATH
HOME=$HOME_DIR
echo "Running forever stop"
forever stop app.js
end script
Тем не менее, сценарий, похоже, не работает. Когда я запускаю sudo start myapp
или sudo stop myapp
, консоль просто зависает.
Я бы хотел, чтобы Upstart как можно точнее эмулировал то, что произойдет, если я просто войду на компьютер после перезагрузки и forever start app.js
, включая пользователя, выполняющего процесс, расположения файлов журнала по умолчанию и так далее.
Есть идеи?