airflow - 如何杀死 Airflow 调度程序和网络服务器?

标签 airflow airflow-scheduler

我是 Airflow 的新手,试图通过启动 Airflow 网络服务器和调度程序来运行 dag。关闭调度程序和 Airflow 网络服务器后, Airflow 进程仍在运行。ps aux | grep airflow 显示 2 个正在运行的 Airflow 网络服务器,以及为所有 dag 运行的调度程序。
我试过运行 kill $(ps aux | grep airflow | awk '{print $2}')但它没有帮助。
我没有 sudo权限和网络服务器 UI 访问。
enter image description here

最佳答案

如果您在本地运行 Airflow 并使用两个命令启动它 airflow schedulerairflow webserver ,那么这些进程将在前台运行。因此,只需为每个进程按 Ctrl-C 即可终止它们及其所有子进程。
如果您没有在前台运行这两个进程,还有另一种方法。 Airflow 在其主目录(默认为 ~/airflow/ )中创建带有调度程序和 gunicorn 服务器进程 ID 的文件。
运行

kill $(cat ~/airflow/airflow-scheduler.pid)
应该终止调度程序。
不幸的是,airflow-webserver.pid包含 gunicorn 服务器的 PID,而不是启动它的初始 Airflow 命令(它是 gunicorn 进程的父进程)。因此,我们首先必须找到 gunicorn 进程的父 PID,然后终止父进程。
运行
kill $(ps -o ppid= -p $(cat ~/airflow/airflow-webserver.pid))
应该终止网络服务器。
如果只是运行 kill (即,发送 SIGTERM)对于这些进程不起作用,您可以随时尝试发送 SIGKILL:kill -9 <pid> .这绝对应该杀死他们。

关于airflow - 如何杀死 Airflow 调度程序和网络服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65656254/

相关文章:

docker - 通过 Docker Operator 在 Airflow 中运行 DBT

airflow - 如何在调度间隔为无的 Airflow 中为 future 调度 dag 触发器?

每月的日期和时间的 Airflow DAG 调度

python - 如何在 Airflow 中创建自定义运算符并在通过云 Composer 运行的 Airflow 模板中使用它们(在谷歌云平台中)

python - Airflow initdb 失败 : ImportError: No module named log.logging_mixin

python - 如何在 EmailOperator 任务的文件名中添加模板变量? (空 Airflow 动)

rest - Apache Airflow - 休息 API 身份验证

Airflow :并发深度优先,而不是广度优先?

python - 如何跳过 Airflow 运算符(operator)中的任务?

python - 无论如何,我可以在 Airflow 中设置运行我的代码的工作目录吗?