【问题标题】:how to kill airflow scheduler and webserver?如何杀死气流调度程序和网络服务器?
【发布时间】:2021-01-10 17:26:02
【问题描述】:

我是气流新手,尝试通过启动气流网络服务器和调度程序来运行 dag。在我关闭调度程序和气流网络服务器后,气流进程仍在运行。

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

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

我没有sudo 权限和网络服务器用户界面访问权限。

【问题讨论】:

  • “关闭调度程序和气流网络服务器”是什么意思?
  • 关闭含义通过点击 Ctrl + C 终止。

标签: airflow airflow-scheduler


【解决方案1】:

如果您在本地运行 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>。这肯定会杀了他们。

【讨论】:

  • 我尝试通过kill -9 <pid of airflow> 终止进程,但进程使用另一个 PID 重新运行。
  • 我也加了一张图片,请看一下
  • @AnupaM 你试过我提供的命令了吗?
  • 是的。正如您所提到的,kill $(cat ~/airflow/airflow-scheduler.pid) 确实杀死/删除了airflow-webserver.pid,但该进程仍然重新生成。
  • @AnupaM 该命令会杀死调度程序。要终止网络服务器,您需要运行我回答中的最后一个终止命令(最终使用 -9)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 2023-03-07
  • 2016-12-28
  • 1970-01-01
相关资源
最近更新 更多