Zum Hauptinhalt springen

Supervisor

Supervisor ermöglicht es seinen Nutzern, eine Reihe von Diensten auf einem Server zu überwachen und zu steuern. Ein Dienst oder Daemon ist ein Programm, das automatisch startet und im Hintergrund läuft. Falls es beendet wird oder abstürzt, wird es von supervisord neu gestartet.

Supervisor hat Ähnlichkeiten zu Programmen wie launchd, daemontools oder runit. Es dient zur Steuerung von projekt- oder kundenbezogenen Prozessen und hat das Ziel, seine Services wie jedes andere Programm beim Booten des Servers mitzustarten.

Einen Service anlegen

Um einen neuen Service anzulegen, erstellen Sie eine .ini-Datei und legen diese in ~/etc/services.d/ ab.
Beispiel: Sie möchten einen Service namens my-application hinzufügen, der eine ausführbare Datei unter /home/customer/bin/my-application startet und überwacht, platzieren Sie die Datei my-application.ini in ~/etc/services .d/ und fügen folgenden Inhalt ein:

~/etc/services.d/my-application.ini
[program:my-application]
command=/home/customer/bin/my-application
startsecs=60

Danach benötigt supervisord einen Hinweis, die neue my-application.ini-Datei einzulesen:

[customer@futura ~]$ supervisorctl reread
my-application: available

Danach kann der Service gestartet werden:

[customer@futura ~]$ supervisorctl update
my-application: added process group

Einen Service starten und stoppen

Um einen gestoppten Service zu starten oder einen laufenden zu stoppen, lauten die Befehle supervisorctl start my-application und supervisorctl stop my-application. Um einen Service neuzustarten, kann supervisorctl restart my-application verwendet werden.

[customer@futura ~]$ supervisorctl start my-application
my-application: started
[customer@futura ~]$ supervisorctl stop my-application
my-application: stopped
[customer@futura ~]$ supervisorctl restart my-application
my-application: stopped
my-application: started

Einen Service entfernen

Um einen Service zu entfernen, muss dieser zuerst gestoppt werden. Danach kann er mittels supervisorctl entfernt werden:

[customer@futura ~]$ supervisorctl stop my-application
my-application: stopped
[customer@futura ~]$ supervisorctl remove my-application
my-application: removed process group

Alle Services auflisten

Um einen Überblick über Ihre eigenen Services und ihre derzeitigen Status zu erhalten, führen Sie supervisorctl status aus:

[customer@futura ~]$ supervisorctl status
my-application RUNNING pid 12849, uptime 0:02:41

Logging

supervisord-Logs werden unter ~/logs/ abgelegt. Sie können die Befehle supervisorctl tail my-application und supervisorctl tail my-application stderr ausführen, um die beiden Logs (Standard- und Fehlerlog) für my-application anzusehen. Alle verfügbaren Optionen werden nach Ausführen des Befehls supervisorctl tail angezeigt.

Weiterführende Informationen