
Ich habe ein Serverprogramm für meine Firma geschrieben und möchte es nun auf dem Ubuntu-Server laufen lassen.
Ich habe darüber nachgedacht, einen Cronjob einzurichten, um das gesamte System einmal pro Woche neu zu starten (aus Sicherheitsgründen, um den RAM im Falle von Speicherlecks, die ich noch nicht gefunden habe, zu löschen usw.), aber ich bin nicht sicher, wie ich den Prozess aufrechterhalten soll.
Im Moment mache ich eine
screen
./launch_server
und es trennen. Ist das eine gute Möglichkeit, ein webbasiertes Programm auf einem Server auszuführen? Brauche ich aus irgendeinem Grund so etwas wie Daemontools oder Runit?
Antwort1
Ihre Frage ist eigentlich eine Kombination aus zwei Fragen:
- Wie führe ich beim Booten ein Programm aus?
VerwendenEmporkömmlingodersystemd(ein Skript in /etc/init.d
), abhängig von Ihrer Version.
- Wie halte ich es am Laufen?
Der einfachste Ansatz wäre, einen Cron-Job hinzuzufügen, der überprüft, ob der Prozessname ausgeführt wird, und ihn neu startet, wenn dies nicht der Fall ist. Ich würde dies ergänzen, indem Sie eine E-Mail erhalten, wenn dies der Fall ist, damit Sie Bescheid wissen, wenn etwas mit dem System passiert, das es wiederholt beendet. Ich würde dem Programm auch eine zeitgestempelte Protokollierung hinzufügen, falls dies noch nicht der Fall ist, damit Sie eine Aufzeichnung darüber haben, wann diese Ereignisse auftreten.
Wenn möglich, sollte auch das Signal oder der Zustand, der zum Absturz geführt hat, protokolliert werden, damit Sie dies verhindern können. Sie können sogar erwägen, die Programmprotokolle zu Ihren automatisierten E-Mails hinzuzufügen.