2016-04-29 1 views
1

enter image description here Ich habe meine Nodejs-Anwendung auf Windows als Windows-Dienst mit http://nssm.cc/ gehostet.Hosting Nodejs als Windows-Dienst

Wenn die Anwendung jedoch abstürzt, wird sie nicht automatisch neu gestartet.

Ich glaube, Windows ist nicht über den Absturz benachrichtigt.

Auch ich kann nicht die Protokolle anzeigen, die ich in der Konsole der App zum Debuggen geschrieben habe.

Kann jemand bitte mit dem besten Weg unterstützen, Nodejs unter Windows als Dienst zu hosten und Fehlerprotokolle zu überprüfen? Ist IISNode auch ein besserer Ansatz?

+1

Ich würde versuchen mit Forever, gibt es eine Windows-Gabel: https://www.npmjs.com/package/forever-win –

+2

Verwenden Sie PM2-Tool. Außerdem gibt es ein PM2-Windows-Service-Modul, das als Dienst ausgeführt wird. –

+0

Danke. Aber was ist mit Logs? Wie werde ich über Fehler/Abstürze benachrichtigt? Irgendeine Idee mit IIS-Knoten? – user3151766

Antwort

0

Ich würde vorschlagen, das PM2 Modul verwenden, das Fenster startup und service Unterstützung, log und monitoring Management.

+0

Ich sollte noch Knoten als Windows-Dienst hosten? oder PM2 kümmert sich darum? – user3151766

+0

PM2 läuft als Dienst und er (re) läuft Ihren Code und kümmert sich um alles –

+0

Ich bekomme Fehler in oben Screenshot gezeigt, können Sie bitte weiter helfen? – user3151766

0

Ich liebte was Corey tat in node-windows. Er zeigt, dass in this answer und ich bin Kopieren seine Schritte unten:.

enter image description here

Es ist auch die Systemprotokollierung eingebaut hat

enter image description here

Es ist eine API Erstellen von Skripten aus Code, z. B.

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\\helloworld.js' 
}); 

// Listen for the "install" event, which indicates the 
// process is available as a service. 
svc.on('install',function(){ 
    svc.start(); 
}); 

svc.install(); 

Es hat sogar eine Möglichkeit, den Dienst neu zu starten und die Neustartzeit des Dienstes zu erhöhen.