Ich werde Oliver's Kommentar wiederholen, wie ich denke, dass es tatsächlich eine gültige Antwort ist. Wenn Sie einen Prozess als Docker-Container ausführen, gibt es Mechanismen, die bereits funktionieren, was forever
für Sie erledigt.
Ein kurzer Glanz über die forever
Aktionen zeigt, dass es eigentlich schon ein bisschen wie Docker aussieht:
actions:
start Start SCRIPT as a daemon
stop Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script
stopall Stop all running forever scripts
restart Restart the daemon SCRIPT
restartall Restart all running forever scripts
list List all running forever scripts
config Lists all forever user configuration
set <key> <val> Sets the specified forever config <key>
clear <key> Clears the specified forever config <key>
logs Lists log files for all forever processes
logs <script|index> Tails the logs for <script|index>
columns add <col> Adds the specified column to the output in `forever list`
columns rm <col> Removed the specified column from the output in `forever list`
columns set <cols> Set all columns for the output in `forever list`
cleanlogs [CAREFUL] Deletes all historical forever log files
Statt forever
der mit Ihrem Prozess zu verwalten, benutzen Sie einfach Docker:
- Die
--restart=always
Option für docker run
ist das gleiche zugrunde liegende Konzept von forever
, um die Anwendung neu zu starten und es weiterlaufen zu lassen, sollte es fehlschlagen.
docker run
ist auch mit forever start
. Fügen Sie -d
zu docker run
hinzu, um im Hintergrund zu laufen.
docker ps
ist auch mit forever list
. Im Fall von Docker machen Sie einfach jeden Ihrer forever
Prozesse zu einem Docker-Container.
docker logs
ist auch mit forever logs
.
Dies sollte es ziemlich trivial machen nur Ihren Prozess im Dockerfile
die CMD
oder ENTRYPOINT
zu machen und tun, weg völlig wth forever
.
Weiter unten, wenn Sie beginnen, in Container-Orchestrierung und Bereitstellung zu gelangen, sehen Sie sich Health Checks (HEALTHCHECK
Anweisung), Docker Swarm und Docker Compose.
Warum probierst du 'pm2' nicht? –
Es kann sinnvoller sein, vorhandene Docker-Funktionalität dafür zu verwenden - speziell [' --restart always'] (https://docs.docker.com/engine/admin/start- Container-automatisch /). –
@Niraj Ich brauche und möchte Docker verwenden. – skiilaa