Supervisor als CRON verwenden
Gibt es eine Möglichkeit zu konfigurieren supervisor um einige Befehl, alle X Sekunden(wie CRON)?
Sehe ich Beispiel mit eventlistener und TICK_ Veranstaltung
[eventlistener:memmon]
command=memmon -a 200MB -m [email protected]
events=TICK_60
Aber es führt den Befehl nur einmal.
InformationsquelleAutor der Frage barbushin | 2014-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem
Als Sie sind zu sehen in der memmon Beispiel, supervisord wird nicht ausgeführt
memmon -a 200MB -m [email protected]
bei jeder Veranstaltung. Vielmehr ist es ab diesem Ereignis-listener einmal (oder möglicherweise ein paar mal, wenn Sie einen pool) und sendet dann jede neue Veranstaltung über die Standardeingabe eines bereits bestehenden Prozesses.Lösung
Folglich, Sie wirklich brauchen, um zu finden, oder schreiben Sie ein supervisor-kompatibel Ereignis-listener für jede weitere Art von Funktion, die Sie auslösen möchten auf Veranstaltungen.
Beispiel die Methode der Umsetzung
Setup, die Konfiguration und schreiben Sie eine listener -
schreiben Sie eine supervisord.cfg event-Bereich
(Hinweis - die Flucht von % für configParser )
schreiben simple.py Ereignis-Listener
Erstellen dieser simple.py Hörer durch änderungen der Beispiel-listener von den docs so führt er seine ersten argument mit alle verbleibenden Argumente:
Stellen Sie sicher, dass der supervisor Konfiguration funktioniert
Jetzt
date -u +"%s %S:%H:%d:%m"
läuft alle 60 Sekunden.Austausch in die gewünschte Befehl
erzeugen Sie ein ausführbares Skript
/tmp/hiworld.php:
(chmod +x ...)
ändern Sie die Zuhörer, die die Argumente in der supervisord.cfg
reload supervisord und test
(Lesen scheint nicht zu erkennen, diese zu ändern)
Ende
Jetzt der gewünschte Befehl ausgeführt wird alle 60 Sekunden. Sie sind jetzt zu Lesen einstellen, Angaben zu Berechtigungen, Standorte, Protokolle, etc.
InformationsquelleAutor der Antwort lossleader
Supervisor unterstützt dies nicht leicht.
Aber um Ihr Ziel zu erreichen, können Sie nur verwenden, supervisor starten cron (für einen docker-container für die Instanz):
https://gist.github.com/martinrusev/7015e393d46647dbad15
InformationsquelleAutor der Antwort wid
Warum das Rad erfinden? Sie können
cron
undsupervisord
zusammen.In der supervisord, erstellen Sie eine Aufgabe mit
autostart=false
In der cron verwenden
* * * * * supervisorctl start <taskname>
starten Sie den task jede minuteInformationsquelleAutor der Antwort AlexM
Können Sie crobtab zu verwalten und planen Sie Ihre supervisor-Programme.
Verwenden Sie den Befehl
supervisorctl start <program_name>
Hinweis: Dadurch wird nur eine einzige Instanz von supervisor-Programm. Wenn es bereits ausgeführt wird und crontab versucht, um es zu lösen wieder
supervisorctl start
- Befehl wird keine neue Instanz starten.InformationsquelleAutor der Antwort Raman