Рассмотрим вариант, что у вас некая Linux машина, и у вас установлен Node.js и вы хотите запускать скрипты в фоновом режиме, чтобы они у вас работали при закрытии консоли.
Как вариант, можно использовать пакет forever. Этот пакет мы устанавливаем с помощью node.
1 2 3 |
$ [sudo] npm install forever -g |
После чего, достаточно запустить наш скрипт с помощью команды
1 2 3 |
forever start server.js |
А остановить
1 2 3 |
forever stop server.js |
Страница пакета на github
forever можно настроить так, чтобы он автоматически перезапускал приложение при его падении.
Еще один вариант, это использовать пакет pm2
Установка:
1 2 3 |
$ [sudo] npm install pm2 -g |
Запуск скрипта node.js
1 2 3 |
pm2 start server.js |
А остановить
1 2 3 |
pm2 stop server.js |
Страница пакета pm2
И последний вариант, чтобы все работало после загрузки системы
Создадим простую службу и поставим ее в автозагрузку.
Создадим файл nodestart и поместим в /etc/init.d
Запишем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#!/bin/bash # chkconfig: 35 90 12 # description: node server # Get function from functions library . /etc/init.d/functions servic="nodestart" start() { forever start /home/node/server.js } stop() { forever stop /home/node/server.js } case "$1" in start) start ;; stop) stop ;; status) status nodestart ;; restart|reload|condrestart) stop start ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 exit 1 esac exit 0 |
Примечание: /home/node/server.js – это путь к вашему скрипту, у вас он может быть другим.
Сохраняем и даем разрешение файлу на исполнение:
1 2 3 |
# chmod +x /etc/init.d/nodestart |
Далее регистрируем службу:
1 2 3 |
# chkconfig --add nodestart |
И добавляем в автозагрузку
1 2 3 |
# chkconfig nodestart on |
Для запуска службы вручную
1 2 3 |
service nodestart start |