Как остановить процесс работы сельдерея
У меня есть проект 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.