Через systemd очень легко это делается.
В начале создаём файл сервиса нашего node приложения по следующему типу:
# nodeapp.service
[Service]
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp
User=nodeuser
Environment=NODE_ENV=production PORT=3000
WorkingDirectory=/path/to/nodeappdir
ExecStart=/usr/bin/node app.js
[Install]
WantedBy=multi-user.target
После чего делаем следующие действия в консоли:
sudo cp nodeapp.service /etc/systemd/system/nodeapp.service # копируем его куда надо
sudo nano /etc/systemd/system/nodeapp.service # смотрим, [редактируем,] [сохраняем,] закрываем
sudo systemctl daemon-reload # перезагружаем список "демонов"
sudo systemctl start nodeapp # запустить сервис
sudo systemctl enable nodeapp # делаем авто запускаемым при старте системы
# другие действия:
sudo systemctl disable nodeapp # отключаем авто запуск
sudo systemctl stop nodeapp # остановить сервис
sudo systemctl restart nodeapp # перезагрузка
systemctl status nodeapp # посмотреть статус
journalctl -u nodeapp.service # глянуть логи
Всё -- так это делается на линукс системах, а как на винде не знаю, там свои заморочки =))
Ну и надо чтобы systemd был установлен в системе, на убунте он вроде доступен(есть) с версии 14.10