我和气流新手并且在守护进程模式下意外启动了气流调度程序。现在,我想杀死调度程序并可能重新启动它。我试着做了
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但没有效果。
感谢任何帮助。谢谢!
答案 0 :(得分:2)
Unfortuntely
kill $(ps -ef | grep "airflow scheduler" | awk '{print $2}')
我无法找到一个干净的解决方案。
同时查看代码
https://github.com/apache/incubator-airflow/blob/master/airflow/bin/cli.py
答案 1 :(得分:2)
转到pid文件所在的airflow目录,然后使用:
cat airflow-webserver.pid | xargs kill
答案 2 :(得分: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 链接中的 monit。 有效的停止命令是:
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
答案 3 :(得分:0)
$AIRFLOW_HOME
中有airflow-webserver.pid文件,用于调度程序和工作程序。
答案 4 :(得分:0)
cd ~/airflow
cat airflow-scheduler.pid | xargs kill
答案 5 :(得分:0)
要杀死气流Web服务器和调度程序,可以使用以下命令
如果您对主管进行了气流配置,请先将其停止
supervisorctl stop all
kill -9 `ps aux | grep airflow | awk '{print $2}'`