如何阻止芹菜工人的进程

use*_*629 26 python django amazon-ec2 celery

我在Ubuntu EC2节点上有一个Django项目,我一直用它来设置异步使用Celery.

我跟随文档一起关注这个.

我已经能够在命令行中完成一项基本任务,使用:

(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO
Run Code Online (Sandbox Code Playgroud)

开始一个工人.我已经对Python进行了一些更改,但意识到我需要重新启动一个worker.

从命令行,我试过:

 ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

但我可以看到工人仍然在奔跑.

我怎么能杀了它?

编辑:

(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ sudo ps auxww | grep celeryd | grep -v "grep" | awk '{print $2}' | sudo xargs kill -HUP
kill: invalid argument H

Usage:
 kill [options] <pid> [...]

Options:
 <pid> [...]            send signal to every <pid> listed
 -<signal>, -s, --signal <signal>
                        specify the <signal> to be sent
 -l, --list=[<signal>]  list all signal names, or convert one to a name
 -L, --table            list all signal names in a nice table

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see kill(1).
Run Code Online (Sandbox Code Playgroud)

编辑2:

(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ ps aux|grep celery
ubuntu    9756  0.0  3.4 100868 35508 pts/6    S+   15:49   0:07 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu    9760  0.0  3.9 255840 39852 pts/6    S+   15:49   0:05 /home/ubuntu/.virtualenvs/env1/bin/python3.4 /home/ubuntu/.virtualenvs/env1/bin/celery --app=tp.celery:app worker --loglevel=INFO
ubuntu   12760  0.0  0.0  10464   932 pts/7    S+   19:04   0:00 grep --color=auto celery
Run Code Online (Sandbox Code Playgroud)

itz*_*nTV 54

在终端尝试这个

ps aux|grep 'celery worker'
Run Code Online (Sandbox Code Playgroud)

你会看到这样的

username  29042  0.0  0.6  23216 14356 pts/1    S+   00:18   0:01 /bin/celery worker ...
Run Code Online (Sandbox Code Playgroud)

然后杀死进程id

sudo kill -9 process_id # here 29042
Run Code Online (Sandbox Code Playgroud)

如果您有多个进程,则必须使用上面的命令kill终止所有进程ID

sudo kill -9 id1 id2 id3 ...
Run Code Online (Sandbox Code Playgroud)

来自芹菜文件

ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

或者如果你在跑 celeryd

ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

注意

如果你正在运行celerysupervisor,即使杀的过程中,它会自动(如果重新启动autorestart=True在管理脚本).


小智 26

pkill -f "celery worker"
Run Code Online (Sandbox Code Playgroud)

通过字符串模式轻松杀死进程


Pau*_*ior 15

celery -A proj control shutdown

编辑,增加一点点.

您应该从项目的根目录使用此命令,"proj"是项目的名称,例如,如果您的Django项目名为DjangoApp,则命令应该如下所示

celery -a DjangApp control shutdown

这应该/将阻止你的芹菜工人进入项目

  • @KyleBridenstine proj是你的应用程序/项目的名称,例如,如果你的应用程序叫做DjangoApp,命令wouyld是来自你的pjoject根目录的`celery -A DjangoApp control shutdown` (2认同)