Mit können upstart
Sie die Verwendung forever
für Ihre Knotenprozessverwaltung beenden . upstart verfügt über Mechanismen, um sicherzustellen, dass Ihr Prozess im Fehlerfall (oder nahezu jedes andere Ereignis in dieser Angelegenheit) gestartet / gestoppt / erneut gestartet wird.
Hier ist eine modifizierte Version Ihres Upstart-Skripts, die die respawn
Direktive von Upstart verwendet, um den Neustart Ihres Prozesses bei einem Absturz auszuführen:
description "Start the node process with Upstart" author "you" # use if your process is going to fork *once* # expect fork # use if your process is going to fork *twice* # exepect daemon # respawn the process indefinitely # (ie. disregard the number of times it crashed # during a given interval and continuously # restart the process) respawn respawn limit unlimited setuid admin # ensures the process is only started once we have # filesystem access and an ethernet interface other # than loopback is available (ie. internet conn) # if your node process doesn't require net connectivity # just remove the `and net-device-up...` start on (local-filesystem and net-device-up IFACE!=lo) stop on shutdown # chdir sets the directory for all script blocks # (pre/post/errethang) chdir "/path/to/your/app" script # we're already in /path/to/your/app cause of `chdir` echo "app is starting" /usr/local/bin/node app.js 2>&1 > app.log end script pre-stop script echo "app is about to stop" end script
Schließlich können Sie verwenden, um sicherzustellen, dass in Ihrem Dienstconf keine Syntaxfehler vorhanden sind init-checkconf /etc/init/myapp.conf
.
meine hauptreferenz für upstart ist hier . Dieses Dokument ist jedoch etwas schwergewichtig. und es ist schwer, die Verwendung der realen Welt anhand einiger Beispiele zu erkennen.