Ich habe einen kleinen WebSocket-Server mit Ruby geschrieben. Ich führe es von der Befehlszeile aus mit dem Befehl:
ruby websocket_server.rb
Dies bringt den Server hoch und funktioniert, bis ich meine SSH-Verbindung offen und aktiv halte (ich mache das auf einem Server, der sich in einer Remote-Serverfarm befindet, also kein direkter Zugriff).
Ich würde gerne verstehen wie man zwei Skripte schreibt:eines, das das Ruby-Programm beim Start startet, und das andere, das (sagen wir alle 30 Minuten) überprüft, ob das Programm läuft und läuft.
Als Nebenbemerkung ist mein Endziel, ein „ Schaltfläche“ auf einem PHP-Dashboard, um den Prozess erneut zu starten, wenn er hängt, ohne auf den Check&Restart-Prozess warten zu müssen (ich kann den Prozessstatus bereits überprüfen).
Akzeptierte Antwort:
Ubuntu 14.04 verwendet Upstart , sodass Sie eine kleine Konfigurationsdatei schreiben können, die sagt,
wie Upstart Ihren Dienst verwalten soll, den Sie zum Beispiel
„myweb“ nennen. Erstellen Sie mit sudo eine Datei namens /etc/init/myweb.conf
(ein
symbolischer Link von dort zu einer echten Datei funktioniert nicht) mit Inhalten
etwas wie:
description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb
Sie können dies mit
testensudo start myweb
status myweb
sudo stop myweb
Der status
Der Befehl zeigt an, ob der Prozess noch läuft. respawn
sagt, dass Sie
möchten, dass es automatisch neu gestartet wird, wenn es stirbt. Die Start-, Stopp- und Statusbefehle sind alle nur Links zu initctl.
Siehe man initctl
, man 5 init
für das conf-Dateiformat und das Upstart-Kochbuch.