Как остановить процесс работы сельдерея

У меня есть проект Django на Ubuntu EC2 node, который я использовал для настройки асинхронного использования с помощью Celery.

Я следую этому вместе с документами.

Мне удалось получить базовую задачу, работающую в командной строке, используя:

(env1)[email protected]:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO

Запустить работника. С тех пор я внес некоторые изменения в Python, но понял, что мне нужно перезапустить рабочего.

Из командной строки я пробовал:

 ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9

Но я вижу, что рабочий все еще работает.

Как я могу его убить?

изменить:

(env1)[email protected]:~/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).

edit 2:

(env1)[email protected]:~/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

Ответы

Ответ 1

Попробуйте это в терминале

ps aux|grep 'celery worker'

Вы увидите, как это

username  29042  0.0  0.6  23216 14356 pts/1    S+   00:18   0:01 /bin/celery worker ...

Затем убить идентификатор процесса с помощью

sudo kill -9 process_id # here 29042

Если у вас есть несколько процессов, вы должны уничтожить все идентификаторы процессов, используя команду kill commmand

sudo kill -9 id1 id2 id3 ...

Из сельдерея док

ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9

ИЛИ если вы используете celeryd

ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9

Заметка

Если вы запускаете celery в supervisor, даже если процесс завершен, он автоматически перезапускается (если autorestart=True в сценарии supervisor).

Ответ 2

pkill -f "celery worker"

легко убить процесс с помощью шаблонов строк

Ответ 3

celery -A proj control shutdown

Отредактировано, постепенно увеличивая бит.

Вы должны использовать эту команду из корня вашего проекта, "proj" - это имя вашего проекта, например, если ваш Django-проект называется DjangoApp, команда должна выглядеть следующим образом

celery -A DjangApp control shutdown

это должно/остановит вашего сельдерея из проекта

Ответ 4

ps auxww | grep 'celery worker' | grep -v " grep " | awk '{print $2}' | xargs kill -9

этот очень похож на представленный ранее, но улучшен, потому что избегайте ошибки, которая появляется при попытке уничтожить процесс grep.