Als ich eine Python-Webanwendung mit aws unter Verwendung des Tornado-Frameworks entwickelte, schläft die mit aws ausgeführte Webanwendung häufig (die App fällt aus). Daher habe ich sie zu einem Daemon gemacht und sie rund um die Uhr zum Laufen gebracht (immer gestartet). Ein Memo, als ich versuchte aufzuwachen (die Anwendung neu zu starten), auch wenn ich eingeschlafen bin.
Supervisor ist ein leichtes Prozessmanagement-Tool, das in Python erstellt wurde.
Das Verfahren ist wie folgt. Alle Arbeiten werden mit Ubuntu 14.04 auf aws erledigt.
Supervisor kann entweder mit "apt-get" oder "pip" installiert werden, aber vorerst werde ich beschreiben, wie man mit "apt-get" unter Ubuntu installiert.
Bitte beachten Sie, dass sich der Speicherort der Einstellungsdatei je nach Installationsmethode ändert. Für apt-get * /etc/supervisor/conf.d/
*
Für Ubuntu (apt-get)
$ sudo apt-get install supervisor
Bestätigen Sie, dass es installiert wurde. Die Version scheint "3.0b2" zu enthalten.
$ supervisord -v
3.0b2
$ sudo supervisorctl version
3.0b2
Schreiben Sie die Informationen zum Starten der Webanwendung in die Supervisor-Einstellungsdatei (conf-Datei).
Erstellen Sie eine conf-Datei in * /etc/supervisor/conf.d/
*.
$ sudo vim /etc/supervisor/conf.d/tornado.conf
Der Inhalt ist wie folgt. Der Name des vom Supervisor zu verwaltenden Prozesses lautet ** tornado **.
tornado.conf
[program:tornado] ;Vorgangsname
directory=/home/ubuntu/tornado-app ;Arbeitsverzeichnis
command=/home/ubuntu/tornado-app/venv/bin/python /home/ubuntu/tornado-app/server.py --port=3000 ;Befehl starten
numprocs=1 ;Anzahl der Boot-Instanzen?
autostart=true ;Auto-Start
autorestart=true ;Automatisch neu starten
user=ubuntu ;Benutzer starten
redirect_stderr=true ;Standardfehler ausgeben
stdout_logfile=/var/log/supervisor/tornado.log ;Ausgabeziel der Protokolldatei
Angenommen, die Web-App wurde bereits in "/ home / ubuntu / tornado-app" geklont.
$ cd ~/tornado-app
$ source venv/bin/activate #aktiviere virtualenv
(venv)$ python server.py --port=3000 &
Informationen zum Schreiben der Supervisor-Konfigurationsdatei finden Sie auch unter Supervisor-Konfiguration.
Starten Sie den Supervisor mit dem Befehl "Service Supervisor"
Starten Sie Supervisor selbst neu.
$ sudo service supervisor restart
Stellen Sie sicher, dass der Supervisor selbst ausgeführt wird.
$ sudo service supervisor status
is running
Verwalten Sie den Prozess mit dem Befehl Supervisorctl
.
Wenn Sie die conf-Datei ändern, müssen Sie sie unbedingt erneut lesen. Verwenden Sie den folgenden Befehl, um die conf-Datei zu lesen.
$ sudo supervisorctl reread
Starten Sie danach die von Supervisor verwaltete Webanwendung.
$ sudo supervisorctl start tornado #Anlaufen
Überprüfen Sie, ob die Webanwendung ausgeführt wird.
$ sudo supervisorctl status #Statusprüfung
tornado RUNNING pid 3414, uptime 0:07:19
Es begann!
Übrigens sind Stopp und Neustart wie folgt.
$ sudo supervisorctl stop tornado #Halt
$ sudo supervisorctl restart tornado #Starten Sie neu
Darüber hinaus war hier für den Befehl Supervisorctl hilfreich.
Recommended Posts