如何阻止芹菜工人?

我通过redis运行芹菜。 我以这样的方式开始我的工作:

celery multi start worker1 -A mypackage.tasks.tasks celery multi v3.1.18 (Cipater) > Starting nodes... > [email protected]: OK 

我这样杀了它:

 celery multi kill worker1 celery multi v3.1.18 (Cipater) > [email protected]: DOWN 

但工人实际上还在跑步。 我不能再次启动工人:

 celery multi start worker1 -A mypackage.tasks.tasks celery multi v3.1.18 (Cipater) > Starting nodes... ERROR: Pidfile (worker1.pid) already exists. Seems we're already running? (pid: 29369) > [email protected]: OK 

如果我杀了这个过程,一切都好:

 kill 29369 

但是这太麻烦了:我需要知道PID。 如何真正用芹菜命令行工具杀死工人?

celery multi指挥无法阻止工人。 你可以从PID文件或从PS输出得到PID,例如

 ps auxww | grep '[c]elery worker' | awk '{print $2}' | xargs kill 

要么

 kill $(cat /path/to/worker.pid)