Ich verwende den Luftstrom für mein Datenpipeline-Projekt. Ich habe mein Projekt im Luftstrom konfiguriert und starte den Luftstromserver als Backend-Prozess mit dem folgenden Befehl
%Vor% Server läuft erfolgreich im Backend. Jetzt möchte ich die Authentifizierung im Luftstrom und die Konfigurationsänderungen in der airflow.cfg aktivieren, aber die Authentifizierungsfunktion wird nicht im Server angezeigt. Wenn ich den Luftstromserver in meinem lokalen Rechner stoppe und starte, funktioniert das.
Also, wie kann ich meinen Daemon Airflow Webserver Prozess in meinem Server neu starten?
Können Sie $AIRFLOW_HOME/airflow-webserver.pid
für die Prozess-ID Ihres Webserver-Daemons überprüfen?
Übergeben Sie es dann ein Kill-Signal, um es zu töten
%Vor%Dann führe einfach
aus %Vor%um den Daemon neu zu starten
Ich rate, Luftstrom auf eine robuste Art und Weise zu führen, mit automatischer Wiederherstellung mit systemd
so kannst du tun:
- um systemctl start airflow
zu starten
- um systemctl stop airflow
zu stoppen
- um systemctl restart airflow
neu zu starten
Dazu benötigen Sie eine Systemdatei 'Einheit'.
Als (Arbeits) Beispiel können Sie folgendes verwenden:
put it in /lib/systemd/system/airflow.service
P.S: Ändern Sie AIRFLOW_HOME in Ihren Luftstromordner mit der Konfiguration
Airflow verwendet gunicorn als HTTP-Server, damit Sie POSIX-typische Signale senden können. Ein Signal, das üblicherweise von Dämonen zum Neustart verwendet wird, ist HUP
.
Sie müssen die PID-Datei für den Airflow-Webserverdämon suchen, um die richtige Prozess-ID zum Senden des Signals zu erhalten. Diese Datei könnte in $AIRFLOW_HOME
oder auch /var/run
sein, wo Sie viele PIDs finden.
Wenn die pid-Datei in /var/run
ist, können Sie den folgenden Befehl ausführen:
gunicorn verwendet ein Preforking-Modell, also Master- und Worker-Prozesse. Das Signal HUP
wird an den Masterprozess gesendet, der diese Aktionen ausführt:
HUP: Laden Sie die Konfiguration neu, starten Sie die neuen Worker-Prozesse mit einer neuen Konfiguration und schalten Sie ältere Worker ordnungsgemäß herunter. Wenn die Anwendung nicht geladen ist (mit der Option preload_app), lädt Gunicorn auch die neue Version.
Weitere Informationen finden Sie in den Nachrichtenhandhabungsdokumenten von gunicorn .
Dies ist meist eine erweiterte Version von Captaincapsaicins Antwort, aber mit HUP
(SIGHUP) anstelle von KILL
(SIGKILL), um den Prozess neu zu laden, anstatt ihn tatsächlich zu beenden und neu zu starten.
Erstellen Sie ein Init-Skript und verwenden Sie den Befehl "daemon", um dies als Dienst auszuführen.
daemon --user="$ {USER}" --pidfile="$ {PID_FILE}" Luftstrom Webserver -p 8090 & gt; & gt; "$ {LOG_FILE}" 2 & gt; & amp; 1 & amp;
Tags und Links python-2.7 airflow