Как стать автором
Обновить

Запуск приложений node.js как сервисов Windows

Приветствую всех резидентов хабра и читающих его.

В этой короткой статье описываются два способа запуска приложений node.js, как сервисов Windows, используя nssm.

Установка

$ npm install winser

Аргументы:
-h, --help — вывод справки
-V, --version — вывод номера версии
-i, --install — установка приложения как сервиса Windows
-r, --remove — удаление сервиса Windows для приложения
-x, --stop — останов сервиса перед удалением
-s, --silent — подавление вывода сообщений на консоль
-c, --confirmation — запрос подтверждения перед установкой/удалением
-p, --path [path] — путь до приложения, устанавливаемого как сервис [текущая директория]

Вариант 1
Удобный способ, используя пакет package.json:

«scripts»: {
«postinstall»: «winser -i -s -c»,
«preuninstall»: «winser -r -x -s»,
}

Теперь, для установки приложения на сервере, надо выполнить:

npm install git://github.com/myprivate/repository/url.git

Аргументы послеустановочного (postinstall) скрипта:
i install — установка
s silent — подавление вывода
c confirmation — запрос подтверждения. Очень удобная опция, т.к. во время разработки нет необходимости устанавливать приложение, как сервис Windows, но часто выполняя команду «npm install» в папке, вы всегда сможете это отменить, выбрав 'n'.

Аргументы скрипта перед удалением (preuninstall):

x — останов сервиса перед удалением
r — удаление сервиса
s — подавление вывода

Вариант 2
Добавьте два следующих скрипта в пакет package.json:

«scripts»: {
«install-windows-service»: «winser -i»,
«uninstall-windows-service»: «winser -r»
}

Теперь вы можете установить сервис, выполнив:
npm run-script install-windows-service

Как это работает
Когда вы устанавливаете ваше node.js приложение, как сервис Windows, то оно регистрируется, используя nssm.exe (находящийся в папке модуля). Запустив сервис nssm.exe, он, в свою очередь, выполнит запуск («npm start») вашего приложения.
Помните, что по умолчанию при запуске npm, указано «node server.js».
Имя сервиса будет аналогичным опции «name» из пакета package.json.

Скачать:
Скачать zip
Скачать tar.gz
Ссылка на github

Ссылки:
Node.js on windows by Tatham Oddie
nssm
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.