Pull to refresh

Запуск приложений 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
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.