Создана служба Windows для запуска моего приложения узла, но служба перестает работать через несколько секунд после запуска

На эту тему уже есть тема ( здесь), но она не отвечает моей ситуации (большинство ответов содержат предложения по альтернативам окнам узла вместо того, чтобы объяснять, почему служба, которую она создает, перестает работать).

Как видно из заголовка, я использовал пакет node-windows для создания службы (запустите скрипт приложения node). Он работает локально, но когда я устанавливаю его на сервер Windows 2012, служба останавливается через несколько секунд после запуска.

Вот ошибки, найденные в Event Viewer:

  • Запуск D:\Program Files\nodejs\node.exe --harmony "D:\Program Files\otherApps\create-windows-service-for-nodejs\node_modules\node-windows\lib\wrapper.js" --file "D:\Program Files\path\to\my\application\index.js" --log " Оболочка API управления службами Node.js " --grow 0.25 --wait 1 --maxrestarts 3 --abortonerror n --stopparentfirst undefined
  • Сервис успешно запущен.
  • Запуск D: \ Program Files \ path \ to \ my \ application \ index.js
  • D: \ Program Files \ path \ to \ my \ application \ index.js остановлен.
  • Перезапустил 1250 мсек после неожиданного выхода; попытки = 1
  • D: \ Program Files \ path \ to \ my \ application \ index.js остановлен.
  • Перезапущен 1562,5 мсек после неожиданного выхода; попытки = 2
  • Дочерний процесс [5800 - D:\Program Files\nodejs\node.exe --harmony "D:\Program Files\otherApps\create-windows-service-for-nodejs\node_modules\node-windows\lib\wrapper.js" --file "D:\Program Files\path\to\my\application\index.js" --log "Оболочка API управления сервисами Node.js" --grow 0.25 --wait 1 --maxrestarts 3 --abortonerror

Вот моя реализация нод-окон:

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

var svc = new Service({
  name:'Node.js Service Management API',
  description: 'The nodejs.org service management api.',
  script: 'D:\\Program Files\\nodeApps\\service-management-api\\server\\server.js'
});

svc.on('install',function(){
    svc.start();
    console.log('Install complete');
    console.log('The service exists: ', svc.exists)
  });
  

  svc.install();

Любые предложения о том, как исправить эту услугу, чтобы она оставалась "включенной"? Это моя реализация нод-окон? Или, возможно, некоторые проблемы конфигурации Windows Server 2012?

Спасибо!

1 ответ

Это не самое удачное решение, но мы решили его, просто удалив все приложение node-windows и начав все заново. Теперь это работает. Мы также вложили его в реальное приложение узла, которое мы автоматизируем с помощью этого сервиса, но я не думаю, что это имеет какое-либо отношение к тому факту, что он теперь работает. Вот код в его окончательном состоянии:

var Service = require('node-windows').Service;
 
// Create a new service object
var svc = new Service({
  name:'Node.js Service Management API',
  description: 'The nodejs.org service management api.',
  script: 'D:\\Program Files\\nodeApps\\service-management-api\\server\\server.js'
});
 
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});
 
svc.install();

Мы также создали отдельный модуль "удалить", который точно такой же, за исключением того, что функция "svc.on" принимает в качестве первого аргумента "удалить" вместо "установить".

Надеюсь, это поможет кому-то, если он окажется в такой же ситуации.

Другие вопросы по тегам