Ich habe eine App (in Form einer einzelnen Binärdatei), die ich auf einem meiner Server ausführen muss, und ich möchte ihren Lebenszyklus ordnungsgemäß steuern können. Ich hätte gerne Folgendes:
- einfacher Start/Stopp/Neustart mit einem Befehl
- so wenig Konfiguration wie möglich, ich möchte keine großen Dinge wie Monit einrichten oder 500 Zeilen Shell-Skripte schreiben
- Verarbeiten Sie stdout/stderr/Fehler in einer Protokolldatei
- Verwalten Sie eine PID-Datei so, dass nur dann eine PID-Datei vorhanden ist, wenn der Prozess ausgeführt wird (dies scheint manuell mit Shell-Skripten wirklich schwierig zu bewerkstelligen)
- (Optional)etwas tun können, wenn die Binärdatei abstürzt
- (Optional)automatisch starten, wenn der Server neu startet und/oder die Anwendung abstürzt
Ich suche nach einer einfachen Lösung, die im Idealfall sofort und ohne großen Konfigurationsaufwand mit Ubuntu Server funktioniert.
Antwort1
Für Ubuntu, denke ich,Emporkömmlingist, was Sie suchen.
https://askubuntu.com/questions/19320/how-to-enable-or-disable-services Diese AskUbuntu-Frage bietet hervorragende Informationen zum Einstieg in das, was Sie tun.
Kurz gesagt, kopieren Sie Folgendes nach /etc/init/mybinary.conf.
description "My Binary"
author "Jakub Arnold <[email protected]>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
respawn
pre-start script
RUN_MODE="daemons"
end script
exec mybinary
Damit sollten Sie mit Folgendem loslegen können:
- Diensteverwaltung mit „service mybinary start/stop/status“
- PID-Dateiverwaltung
- Respawn bei Absturz
- beim Booten ausführen
- Protokollierung unter /var/log/upstart/mybinary.log
Das Upstart-Kochbuch enthält alle Informationen, die Sie benötigen:http://upstart.ubuntu.com/cookbook/
Nebenbei möchte ich erwähnen, dass Ubuntu plant, Upstart zugunsten von Systemd einzustellen, es gibt jedoch keinen Plan dazu.