12

我和气流新手,不小心在守护程序模式下启动了气流调度程序。现在,我想杀死调度程序并可能重新启动它。我试着做

    sudo kill -9 <list of pids>
    pkill <name>

什么都没有发生。当我跑

    ps aux | grep 'airflow scheduler'

我看到这些条目:

    user1   2907  6.0  1.0 329788 62996 ?        Sl   17:37   1:26 /users/user1/anaconda2/bin/python /users/user1/anaconda2/bin/airflow scheduler -D
    user1   2909  0.0  0.9 327576 58948 ?        Sl   17:37   0:00 /users/user1/anaconda2/bin/python /users/user1/anaconda2/bin/airflow scheduler -D
    user1   2910  0.0  0.9 327576 58944 ?        Sl   17:37   0:00 /users/user1/anaconda2/bin/python /users/user1/anaconda2/bin/airflow scheduler -D
    user1   2911  0.0  0.9 327576 58944 ?        Sl   17:37   0:00 /users/user1/anaconda2/bin/python /users/user1/anaconda2/bin/airflow scheduler -D

...依此类推,35 行具有不同的 pid。

关于如何在不重新启动机器的情况下停止/终止气流调度程序的任何建议。我还检查了调度程序的 pid 文件并尝试杀死该 pid 但没有效果。

任何帮助表示赞赏。谢谢!

4

5 回答 5

13

不幸的是

kill $(ps -ef | grep "airflow scheduler" | awk '{print $2}')

我找不到干净的解决方案。

也在查看代码

https://github.com/apache/incubator-airflow/blob/master/airflow/bin/cli.py

于 2018-01-18T17:13:16.140 回答
6

转到pid文件所在的airflow目录并使用: cat airflow-scheduler.pid | xargs kill

于 2019-10-07T23:10:20.277 回答
1

另一种选择是:

/usr/bin/rm -f ${AIRFLOW_HOME}/airflow-scheduler.pid
/usr/bin/pkill -f "airflow-scheduler"

请注意最好删除旧的守护进程 .pid 文件;以避免在守护程序模式下重新启动时出现任何问题。

您还可以查看:https ://github.com/apache/airflow/issues/77

/bin/sh -c 'PATH=/bin:/sbin:/usr/bin:/usr/sbin  mPPID=`cat ${AIRFLOW_HOME}/airflow-scheduler.pid`;ps -o pid= --ppid $mPPID | xargs kill -15 && kill -15 $mPPID && rm -f ${AIRFLOW_HOME}/airflow-scheduler.pid'"

但是这个命令依赖于父 PID(.pid 文件),所以如果父进程被删除并且子进程仍在运行,它将无法工作。

所以在我看来,接受的答案是最好的。或者如果你已经安装了使用 pkill

如果使用任何监控服务,例如 github 链接中的监控。有效的停止命令是:

gPPID=`ps -ef | /usr/bin/grep 'airflow scheduler' | /usr/bin/grep -v grep | awk '{print $2}' `; echo $gPPID; | xargs kill -15 && rm -f ${AIRFLOW_HOME}/airflow-scheduler.pid
于 2021-02-27T00:01:46.653 回答
0
cd ~/airflow
cat airflow-scheduler.pid | xargs kill
于 2020-02-19T00:17:33.930 回答
0

要杀死气流网络服务器和调度程序,您可以使用以下命令

如果您已为气流配置了 supervisord,请先将其停止

supervisorctl stop all

kill -9 `ps aux | grep airflow | awk '{print $2}'`
于 2020-04-17T05:53:04.230 回答