После реализации nodejs приложения возникла задача его демонизации. Один из способов - использование модуля, разработанного nodejitsu - forever. Для установки данного модуля воспользуйтесь командой (Ubuntu Server):
sudo npm -g install forever
После этого можно запустить выполнение вашего nodejs приложения с помощью forever в виде самостоятельного сервиса:
forever start /path/to/directory/containing_your_app/your_app_name.js
forever будет отслеживать за падениями приложения и пытаться его поднять. В случае же рестарта системы, запуска вашего сервиса не произойдет. Здесь нужно реализовать автозагрузку на уровне системы. Создайте скрипт запуска в директории /etc/init.d. Ниже приведен пример скрипта автозапуска /etc/init.d/your_app_name:
#!/bin/bash
#
# description: your_app_name (node) service
#
# use commands:
# service your_app_name <command (start|stop|status|restart)>
SERVICE_NAME=your_app_name
SOURCE_DIR=/path/to/directory/containing_your_app
SOURCE_NAME=your_app_name.js
SOURCE_PATH=$SOURCE_DIR/$SOURCE_NAME
LOG_DIR=$SOURCE_DIR/forever
USER=tester
pidfile=/home/$USER/.forever/pids/$SERVICE_NAME.pid
logfile=$LOG_DIR/forever.log
outfile=$LOG_DIR/output.log
errfile=$LOG_DIR/error.log
case "$1" in
start)
forever start -l $logfile -o $outfile -e $errfile --pidFile $pidfile -a $SOURCE_PATH
;;
stop)
forever stop --pidFile $pidfile $SOURCE_PATH
;;
status)
forever list
;;
restart)
forever restart -l $logfile -o $outfile -e $errfile --pidFile $pidfile -a $SOURCE_PATH
;;
*)
echo "Usage: $SERVICE_NAME {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Далее выдайте права:
sudo chmod 755 /etc/init.d/your_app_name
и пропишите его в автозагрузку:
sudo update-rc.d your_app_name defaults