1

Тема: Запуск сервера node.js при загрузке Windows

Требуется автоматический запуск скрипта с сервера node.js при каждой загрузке Windows.

Запуск  node.js будем осуществлять как службу Windows. Тем более, что нам необходимо запускать несколько серверов в фоновом режиме.

Скрипт index.js, запускаемый при старте ОС, лежит у нас в директории C:\BOTS\GOLOS\gbot  .
Создим папку C:\BOTS\node-windows для инициализации модуля node-windows , который и будет создавать соответствующую новую службу windows.

node-windows рекомендуется устанавливать с npm, используя глобальный флаг:

npm install -g node-windows

Затем в нашем конкретном проекте C:\BOTS\GOLOS\gbot производим его запуск:

npm link node-windows


Теперь необходимо создать для нашего проекта файл install_gloto.js и поместить его в C:\BOTS\GOLOS\gbot

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'GLoto',
  description: '',
  script: 'C:\\BOTS\\GOLOS\\gbot\\index.js'
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

svc.install();

Устанавливаем новую службу windows, запустив этот скрипт cd c:\bots\golos\gbot node install_gloto


Все. Теперь при каждом старте ОС у нас будет автоматически запускаться node.is для соответствующего проекта.
В папке C:\BOTS\GOLOS\gbot у нас появится новая папка daemon, к которой будет размещаться вновь созданный файл службы gloto.exe и файлы логов фоновой работы нашего скрипта.

Поделиться

2

Re: Запуск сервера node.js при загрузке Windows

Для удаления созданной службы используем следующий код:
uninstall_gloto.js

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'GLoto',
  script: require('path').join(__dirname,'index.js')  
});

// Listen for the "uninstall" event so we know when it's done.
svc.on('uninstall',function(){
  console.log('Uninstall complete.');
  console.log('The service exists: ',svc.exists);
});

// Uninstall the service.
svc.uninstall();

который так же помещаем в папку конкретного проекта. При запуске этот код удаляет ранее созданную соответствующую Службу Windows и созданную ранее в проекте папку daemon со всем ее содержимым. Так что, если нужно сохранить лог работы скрипта, то их нужно заранее сохранить в другом месте.

Поделиться