663 Stimmen

Wie kann ich eine node.js-Anwendung als Hintergrunddienst ausführen?

Da dieser Beitrag im Laufe der Jahre viel Aufmerksamkeit erregt hat, habe ich die besten Lösungen für jede Plattform am Ende dieses Beitrags aufgelistet.


Originalpfosten :

Ich möchte, dass mein Node.js-Server im Hintergrund läuft, d. h.: Wenn ich mein Terminal schließe, soll mein Server weiterlaufen. Ich habe dies gegoogelt und kam mit diesem Lehrgang Es funktioniert jedoch nicht wie vorgesehen. Statt dieses Daemon-Skript zu verwenden, dachte ich, ich benutze einfach die Ausgabeumleitung (die 2>&1 >> file Teil), aber auch dieser wird nicht beendet - ich erhalte eine leere Zeile in meinem Terminal, als ob es auf Ausgaben/Fehler wartet.

Ich habe auch versucht, den Prozess in den Hintergrund zu stellen, aber sobald ich mein Terminal schließe, wird der Prozess ebenfalls beendet.

Wie kann ich es also weiterlaufen lassen, wenn ich meinen lokalen Computer herunterfahre?


Top-Lösungen :

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!

1voto

Josh Punkte 13042

Ich bin überrascht, dass niemand erwähnt hat Guvnor

Ich habe forever, pm2 usw. ausprobiert. Aber wenn es um solide Kontrolle und webbasierte Leistungsmetriken geht, habe ich festgestellt Guvnor bei weitem die beste. Außerdem ist es auch vollständig Open Source.

enter image description here

Edit : Ich bin mir allerdings nicht sicher, ob es unter Windows funktioniert. Ich habe es nur unter Linux benutzt.

4 Stimmen

Scheint ab 2017 veraltet zu sein. Der Bau scheitert. Keine Code-Pushs im letzten Jahr. Fragwürdig.

1voto

Arezki Lebdiri Punkte 39

PM2 ist ein Produktionsprozessmanager für Node.js-Anwendungen mit integriertem Load Balancer. Er ermöglicht es Ihnen, Anwendungen für immer am Leben zu erhalten, sie ohne Ausfallzeiten neu zu laden und allgemeine Systemverwaltungsaufgaben zu erleichtern. https://github.com/Unitech/pm2

0 Stimmen

Ernste Probleme mit dem Speicherverbrauch! wählen Sie phusion+ nginx

1voto

Karl Pokus Punkte 666

Ich verwende tmux für eine Entwicklungsumgebung mit mehreren Fenstern/Fenstern auf entfernten Hosts. Es ist wirklich einfach, den Prozess zu trennen und im Hintergrund weiterlaufen zu lassen. Werfen Sie einen Blick auf tmux

1voto

Viktor Nonov Punkte 1392

Für Personen, die neuere Versionen des Daemon npm-Modul - Sie müssen Dateideskriptoren anstelle von Strings übergeben:

var fs = require('fs');
var stdoutFd = fs.openSync('output.log', 'a');
var stderrFd = fs.openSync('errors.log', 'a');
require('daemon')({
    stdout: stdoutFd, 
    stderr: stderrFd
});

1voto

Julien Le Coupanec Punkte 7195

Wenn Sie pm2 verwenden, können Sie es mit autorestart eingestellt auf false :

$ pm2 Ökosystem

Dies erzeugt eine Probe ecosystem.config.js :

module.exports = {
  apps: [
    {
      script: './scripts/companies.js',
      autorestart: false,
    },
    {
      script: './scripts/domains.js',
      autorestart: false,
    },
    {
      script: './scripts/technologies.js',
      autorestart: false,
    },
  ],
}

$ pm2 start ecosystem.config.js

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X