Создана служба Windows для запуска приложения моего узла, но служба перестает работать через несколько секунд после запуска - PullRequest
0 голосов
/ 27 августа 2018

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

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

Вот ошибки, найденные в средстве просмотра событий:

  • Запуск D: \ Program Files \ nodejs \ node.exe --harmony "D: \ Program Files \ otherApps \ create-windows-service-for-nodejs \ node_modules \ node-windows \ lib \ wrapper.js" - -файл "D: \ Program Files \ path \ to \ my \ application \ index.js" --log "Оболочка API управления сервисами Node.js" --grow 0.25 --wit 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 --wit 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 Ответ

0 голосов
/ 28 августа 2018

Это не самое удовлетворительное разрешение, но мы решили его, просто удалив все приложение 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 принимает в качестве первого аргумента «удалить» вместо «установить».

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

...