Update 2016:
Die Node-Windows / Mac / Linux-Serie verwendet eine gemeinsame API für alle Betriebssysteme, daher ist sie eine absolut relevante Lösung. Jedoch; node-linux generiert systemv init-Dateien. Da systemd immer beliebter wird, ist es unter Linux realistisch gesehen eine bessere Option. PR ist willkommen, wenn jemand Systemd-Unterstützung zu Node-Linux hinzufügen möchte :-)
Original-Thread:
Dies ist jetzt ein ziemlich alter Thread, aber Node-Windows bietet eine andere Möglichkeit, Hintergrunddienste unter Windows zu erstellen. Es basiert lose auf dem nssm
Konzept der Verwendung eines exe
Wrappers um Ihr Knotenskript. Jedoch; es nutzt winsw.exe
statt und stellt einen konfigurierbaren Knoten Wrapper für weitere granulare Kontrolle darüber , wie der Prozess startet / stoppt auf Ausfälle. Diese Prozesse sind wie jeder andere Dienst verfügbar:
Das Modul backt auch einige Ereignisprotokolle:
Die Dämonisierung Ihres Skripts erfolgt über Code. Zum Beispiel:
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();
Das Modul unterstützt Dinge wie das Begrenzen von Neustarts (damit schlechte Skripte Ihren Server nicht beschädigen) und das Erhöhen der Zeitintervalle zwischen Neustarts.
Da Node-Windows-Dienste wie alle anderen ausgeführt werden, ist es möglich, den Dienst mit der bereits verwendeten Software zu verwalten / überwachen.
Schließlich gibt es keine make
Abhängigkeiten. Mit anderen Worten, eine einfache npm install -g node-windows
wird funktionieren. Sie benötigen keine Visual Studio-, .NET- oder Node-Gyp-Magie, um dies zu installieren. Außerdem ist es MIT- und BSD-lizenziert.
Bei vollständiger Offenlegung bin ich der Autor dieses Moduls. Es wurde entwickelt, um die genauen Schmerzen des OP zu lindern, aber mit einer engeren Integration in die Funktionalität, die das Betriebssystem bereits bietet. Ich hoffe, zukünftige Zuschauer mit derselben Frage finden es nützlich.