2015-04-15 5 views
6

Ich versuche PM2 zu konfigurieren, um einen einfachen node.js Server auf Centos zu dämonisieren. Das Skript init.d wird ausgeführt, und es gibt keine Fehler, aber pm2 list gibt eine leere Liste zurück und der Server startet nicht.PM2 resurrect funktioniert nicht bei Neustart - dump.pm2 wird geleert

Ursprünglich habe ich versucht, den Prozess als einen anderen Benutzer zu starten (für die Interessenten kann dies mit Änderungen an pm2-init.sh getan werden). Aber aufgrund der Komplikation entschied ich mich zuerst zu versuchen, es als root laufen zu lassen.

Das seltsame Symptom des Problems ist, dass die dump.pm2 Datei von einem Prozess geleert wird, so dass die pm2 Wiederbelebung hat nichts zu tun. Ich habe bis PM2 auf Neustart läuft als

$ pm2 startup centos 
$ pm2 start /path/to/my/server.js 
$ pm2 save 

An dieser Stelle folgt, hatte dump.pm2 ein großes JSON-Objekt in ihm und der Server ausgeführt wird. Dann läuft:

Es war wieder leer, und so war der dump.pm2!

Ich bin nicht sicher, welcher Prozess diese Datei löscht. Ich habe versucht, das Startskript ohne Erfolg neu zu installieren und auszuführen. Jede Hilfe wird sehr geschätzt.

Antwort

4

als eine vorübergehende Lösung, stelle ich die Dump-Datei als unveränderlich:

$ chattr +i /path/to/my/dump.pm2 

Das funktionierte. Obwohl es nicht ideal ist, ist es das, was ich verwenden werde, bis ich feststellen kann, warum die dump.pm2 Datei geleert wird.

+0

Hey @Jamie Counsell lassen Sie mich wissen, wenn Sie Fortschritte in diesem haben! Ich verwende auch Ihre temporäre Workaround – renatoargh

+0

Leider immer noch kein Fortschritt. Ich habe im Quellcode geforscht, um nach der Ursache zu suchen, aber ich bin mir nicht sicher, ob es ein Problem mit PM2, FS oder etwas anderem ist. Es ist auch schwierig genau zu verfolgen, wann die Datei berührt wird (obwohl ich sicher bin, dass es einen Weg gibt). Bist du auch auf Centos? Es könnte sich lohnen, ein Thema auf Github zu öffnen. –

+0

Ich benutze Raspian (debian optimiert für den Raspberry Pi)! Ich werde ein wenig mehr versuchen und ich werde Sie wissen lassen, wenn ich zu einer Lösung komme, sonst könnte ein Problem eröffnen! – renatoargh

Verwandte Themen