Update 2016: Die node-Windows/mac/linux-Reihe verwendet eine gemeinsame API für alle Betriebssysteme und ist daher eine absolut relevante Lösung. Allerdings erzeugt node-linux systemv-Init-Dateien. Da systemd immer beliebter wird, ist es unter Linux realistischerweise die bessere Option. PRs sind willkommen, wenn jemand systemd-Unterstützung zu node-linux hinzufügen möchte :-)
Ursprüngliches Thema:
Dieses Thema ist schon ziemlich alt, aber node-Windows bietet eine weitere Möglichkeit, Hintergrunddienste unter Windows zu erstellen. Sie basiert lose auf dem nssm
Konzept der Verwendung eines exe
Wrapper um Ihr Node-Skript. Es verwendet jedoch winsw.exe
und bietet einen konfigurierbaren Node Wrapper, der eine genauere Kontrolle darüber ermöglicht, wie der Prozess bei Fehlern startet/stoppt. Diese Prozesse sind wie jeder andere Dienst verfügbar:
Das Modul bietet auch eine Ereignisprotokollierung:
Die Daemonisierung Ihres Skripts wird durch Code erreicht. 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 die Begrenzung von Neustarts (damit schlechte Skripte Ihren Server nicht verwüsten) und wachsende Zeitintervalle zwischen Neustarts.
Da node-Windows-Dienste wie alle anderen Dienste laufen, können Sie den Dienst mit der Software verwalten/überwachen, die Sie bereits verwenden.
Schließlich gibt es keine make
Abhängigkeiten. Mit anderen Worten, ein einfaches npm install -g node-windows
wird funktionieren. Sie brauchen kein Visual Studio, .NET oder Node-Gyp-Magie, um es zu installieren. Außerdem ist es MIT und BSD lizenziert.
Um ganz offen zu sein: Ich bin der Autor dieses Moduls. Es wurde entwickelt, um genau den Schmerz zu lindern, den der OP erlebt hat, aber mit einer engeren Integration in die Funktionen, die das Betriebssystem bereits bietet. Ich hoffe, dass künftige Betrachter mit der gleichen Frage es nützlich finden.
3 Stimmen
Ich glaube, er wollte sein lokales System abschalten.
67 Stimmen
Er meinte, dass das Beenden einer ssh-Sitzung die Aufgabe beendet
6 Stimmen
github.com/Unitech/pm2 ist ein sehr gepflegter und sehr stabiler Prozessmanager, probieren Sie ihn aus!
2 Stimmen
Können Sie den Bildschirm ( aperiodic.net/bildschirm/schnell_referenz )
0 Stimmen
Sie können nohup verwenden, suchen Sie in Google, wie man es verwendet.