Оновлення 2016 року:
серія node-windows / mac / linux використовує загальний API для всіх операційних систем, тому це абсолютно відповідне рішення. Однак; node-linux генерує файли systemv init. Оскільки systemd продовжує рости в популярності, це реально кращий варіант для Linux. ПР-ласкаво просимо, якщо хтось хоче додати системну підтримку до node-linux :-)
Оригінальна нитка:
Це вже досить стара нитка, але вузольні вікна - це ще один спосіб створення фонових служб у Windows. Це вільно базується на nssm
концепції використання exe
обгортки навколо сценарію вашого вузла. Однак; він використовує winsw.exe
натомість і забезпечує конфігурувану вузольну обгортку для більш детального контролю над тим, як процес починається / зупиняється на збоях. Ці процеси доступні, як і будь-яка інша служба:
Модуль також записується в журнал деяких подій:
Демонізування вашого сценарію здійснюється за допомогою коду. Наприклад:
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\my\\node\\script.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
console.log(svc.name+' started!\nVisit http://127.0.0.1:3000 to see it in action.');
});
// Install the script as a service.
svc.install();
Модуль підтримує такі речі, як обмеження перезапуску (так що погані сценарії не шлангують ваш сервер) та збільшення тимчасових інтервалів між перезавантаженнями.
Оскільки послуги вузлів Windows працюють, як і будь-які інші, можна керувати / контролювати службу за допомогою будь-якого програмного забезпечення, яке ви вже використовуєте.
Нарешті, make
залежностей немає . Іншими словами, пряма npm install -g node-windows
робота буде працювати. Для цього вам не потрібна Visual Studio, .NET або магія node-gyp. Крім того, це ліцензія на MIT та BSD.
Повністю розкриваючи, я є автором цього модуля. Він був розроблений для полегшення точного болю, який відчув ОП, але при більш тісній інтеграції у функціонал, який Операційна система вже надає. Сподіваюсь, майбутні глядачі з цим самим питанням вважають його корисним.