Ich habe die ausführbare Datei node.js heruntergeladen . Wie kann ich diese ausführbare Datei als Windows-Dienst ausführen? Ich kann das Standardinstallationsprogramm node.js nicht verwenden, da mehrere Versionen von node.js gleichzeitig ausgeführt werden müssen.
130
Ich fand das Ding so nützlich, dass ich einen noch einfacher zu verwendenden Wrapper darum herum baute ( npm , github ).
Installation:
Installieren Ihres Dienstes:
Deinstallation Ihres Dienstes:
quelle
WinSer ist ein Node.js-freundlicher Wrapper um den beliebten NSSM (Non-Sucking Service Manager).
quelle
Aus diesem Blog
quelle
Ich gehe nicht direkt auf die Frage ein, sondern biete eine Alternative, die Ihre Anforderungen möglicherweise auch auf eine andere Art und Weise erfüllt.
Funktionell sind die Anforderungen:
Diese Anforderungen können erfüllt werden, indem ein Prozessmanager (PM) verwendet wird und der Prozessmanager beim Systemstart gestartet wird. Zwei gute PMs, die Windows-freundlich sind, sind:
Um die PM automatisch zu starten, ist es am einfachsten, eine geplante Aufgabe mit dem Auslöser "Beim Start" zu erstellen:
quelle
pm2
ein Batch-Skript zu verwenden, müssen Sie die Umgebungsvariablen angeben, da dies sonst nicht funktioniert. Hier besprochen: github.com/Unitech/pm2/issues/1079Der Prozessmanager + Taskplaner-Ansatz, den ich vor einem Jahr veröffentlicht habe, funktioniert gut mit einigen einmaligen Service-Installationen. Aber vor kurzem habe ich angefangen, Systeme in Form von Mikrodiensten zu entwerfen, wobei viele kleine Dienste über IPC miteinander sprechen. Die manuelle Konfiguration jedes Dienstes ist daher unerträglich geworden.
Um das Ziel der Installation von Diensten ohne manuelle Konfiguration zu erreichen, habe ich serman erstellt , ein Befehlszeilentool (Installation mit
npm i -g serman
), mit dem eine ausführbare Datei als Dienst installiert werden kann. Alles, was Sie schreiben müssen (und nur einmal schreiben müssen), ist eine einfache Dienstkonfigurationsdatei zusammen mit Ihrer ausführbaren Datei. Laufwird den Dienst installieren.
stdout
undstderr
sind alle protokolliert. Weitere Informationen finden Sie auf der Projektwebsite .Eine funktionierende Konfigurationsdatei ist sehr einfach, wie unten gezeigt. Es hat aber auch viele nützliche Funktionen wie
<env>
und<persistent_env>
unten.quelle