Gibt es Windows analog zum Supervisor?
Muss ich laufen python-Skript und sicher sein, dass es neu gestartet werden, nachdem es beendet. Ich weiß, es ist UNIX-Lösung namens supervisord. Aber leider-server, wo mein script ausgeführt wird, auf Windows. Wissen Sie, welche Tools nützlich sein kann?
Dank
InformationsquelleAutor der Frage pss | 2011-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Trotz der dicken, Fetten disclaimer hierdie Sie ausführen können Supervisor mit Cygwin in Windows; es stellt sich heraus, dass Cygwin geht ein langer Weg, um zu simulieren eine Posix-Umgebung, so gut, dass in der Tat supervisord läuft unverändert. Es gibt keine Notwendigkeit zu lernen, ein neues Instrument, und Sie wird auch sparen Sie einiges an Arbeit, wenn Sie bereitstellen müssen, ein Komplexes Projekt über mehrere Plattformen hinweg.
Hier ist mein Rezept:
Erstellen Sie eine virtualenv für supervisord, und installieren Sie dann wie gewohnt:
Konfigurieren supervisord in der üblichen Weise. Beachten Sie, dass supervisord läuft mit Cygwin, so dass Sie besser verwenden Sie die Cygwin-Pfade Weg (C:\myservers\project1 übersetzt nach /cygdrive/c/myservers/Projekt1 in Cygwin).
Jetzt werden Sie wahrscheinlich wollen, um zu installieren, supervisord as a service. Hier ist, wie ich es mache:
Rufen Sie den Windows Dienst manager und starten Sie den Dienst supervisord, die Sie gerade installiert haben.
Punkt 5 installiert supervisord als Windows-Dienst, so dass Sie es kontrollieren können (start/stop/restart) aus der Windows-Dienst-manager. Aber die Dinge, die Sie tun können, mit
supervisorctl
arbeiten wie gewohnt, das heißt, Sie können einfach bereitstellen der alten Konfigurationsdatei.InformationsquelleAutor der Antwort dsign
Werden Sie wahrscheinlich wollen, führen Sie Ihr Skript als
Windows Service
. Zu tun, so müssen Sie die python-win32 Bibliothek. Diese Frage hat eine gute Beschreibung, wie Sie gehen über das tun dies, sowie eine Reihe von links zu anderen Ressourcen. Diese Frage kann auch von nutzen sein.Einen
Windows Service
ist, wie Sie wollen, wrap up-Skript, das ausgeführt werden muss, die kontinuierlich an Windows. Sie kann konfiguriert werden, um automatisch starten beim Booten und behandeln von Fehlern. Nichts wird aufhören jemand von der Tötung der Prozess an sich, sondern um die mögliche situation, können Sie einfach erstellen Sie einebat
Datei und verwenden Sie diesc
Befehl, um die pole der service um zu sehen, ob es läuft und wenn nicht, starten Sie den Dienst neu. Nur Zeitplan diebat
Datei alle 60 Sekunden (oder was ist sinnvoll für Ihr Skript möglicherweise nach unten).InformationsquelleAutor der Antwort Mark Gemmill
Wenn Sie möchten, eine supervisord wie Prozess-manager, der läuft auf den meisten posix-OS und Python-basierte wie supervisord, dann sollten Sie schauen, honcho ist ein Python-port der Vorarbeiter (Ruby-basiert):
http://pypi.python.org/pypi/honcho/
Es funktioniert gut auf mac, linux, aber (eigentlich) noch nicht windows... (die Bearbeitung meiner ersten Antwort, wo ich gesagt hatte, optimistisch in die Zukunft, die es bereits auf Windows-Basis über einen pull-request wurde verworfen, da)
Gibt es eine Gabel, die Windows-support-hier https://github.com/redpie/honcho
und einige work-in-progress zur Unterstützung von Windows hier https://github.com/nickstenning/honcho/issues/28 ... zumindest könnte es eine mögliche Lösung in Naher Zukunft.
Es ist auch ein Vorarbeiter, der Gabel für die Unterstützung von Windows hier: https://github.com/ddollar/foreman-windowsdie möglicherweise für Sie arbeiten, obwohl ich es nie versucht.
Also jetzt ein Windows-Dienst könnte Ihre beste Kurzfristige option.
InformationsquelleAutor der Antwort Philippe Ombredanne