Solución:
Aconsejo ejecutar el flujo de aire de una manera robusta, con recuperación automática con systemd
para que puedas hacer:
– para comenzar systemctl start airflow
– para detener systemctl stop airflow
– Para reiniciar systemctl restart airflow
Para esto, necesitará un archivo systemd ‘unit’. Como ejemplo (funcional), puede utilizar lo siguiente:
put it in /lib/systemd/system/airflow.service
[Unit]
Description=Airflow webserver daemon
After=network.target postgresql.service mysql.service redis.service rabbitmq-server.service
Wants=postgresql.service mysql.service redis.service rabbitmq-server.service
[Service]
PIDFile=/run/airflow/webserver.pid
EnvironmentFile=/home/airflow/airflow.env
User=airflow
Group=airflow
Type=simple
ExecStart=/bin/bash -c 'export AIRFLOW_HOME=/home/airflow ; airflow webserver --pid /run/airflow/webserver.pid'
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=on-failure
RestartSec=42s
PrivateTmp=true
[Install]
WantedBy=multi-user.target
PD: cambie AIRFLOW_HOME a donde su carpeta de flujo de aire con la configuración
Puedes revisar $AIRFLOW_HOME/airflow-webserver.pid
para el ID de proceso de su demonio de servidor web?
Entonces pásale una señal de matar para matarlo.
cat $AIRFLOW_HOME/airflow-webserver.pid | xargs kill -9
Entonces solo corre
airflow webserver -p 8080 -D True
para reiniciar el demonio
Esto funcionó para mí (¡varias veces!: D)
encuentre la identificación del proceso: (asumiendo que 8080 es el puerto)
lsof -i tcp:8080
mátalo
kill <pid>