如何杀死气流调度程序和网络服务器?

how to kill airflow scheduler and webserver?

我是 airflow 的新手,尝试通过启动 airflow 网络服务器和调度程序来 运行 一个 dag。在我关闭 scheduler 和 airflow 网络服务器后,airflow 进程仍然 运行ning.

ps aux | grep airflow 显示 2 个 airflow 网络服务器 运行ning,以及所有 dag 的调度程序 运行ning。

我尝试了 运行宁 kill $(ps aux | grep airflow | awk '{print }') 但没有帮助。

我没有 sudo 权限和网络服务器 UI 访问权限。

如果您 运行 在本地使用 Airflow 并使用 airflow schedulerairflow webserver 这两个命令启动它,那么这些进程将 运行 在前台运行。因此,只需按 Ctrl-C 即可终止它们及其所有子进程。

如果您没有在前台运行这两个进程 运行ning,还有另一种方法。 Airflow 在其主目录中创建具有调度程序和 gunicorn 服务器进程 ID 的文件(默认 ~/airflow/)。

运行

kill $(cat ~/airflow/airflow-scheduler.pid)

应该终止调度程序。

不幸的是,airflow-webserver.pid 包含 gunicorn 服务器的 PID 而不是启动它的初始 Airflow 命令(它是 gunicorn 进程的父进程)。所以,我们首先要找到gunicorn进程的父PID,然后kill父进程。

运行

kill $(ps -o ppid= -p $(cat ~/airflow/airflow-webserver.pid))

应该终止网络服务器。

如果只是 运行ning kill(即发送 SIGTERM)对这些进程不起作用,您可以随时尝试发送 SIGKILL:kill -9 <pid>。这绝对应该杀死他们。