J'ai un projet Django sur un nœud Ubuntu EC2, que j'ai utilisé pour configurer un asynchrone en utilisant Celery
.
Je suis this avec les documents.
J'ai pu obtenir une tâche de base en ligne de commande, en utilisant:
(env1)ubuntu@ip-172-31-22-65:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO
Pour démarrer un travailleur. J'ai depuis apporté quelques modifications au Python, mais j'ai réalisé que je devais redémarrer un travailleur.
Depuis la ligne de commande, j'ai essayé:
ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
Mais je peux voir que le travailleur est toujours en cours d'exécution.
Comment puis-je le tuer?
modifier:
(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).
modifier 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
Essayez ceci dans le terminal
ps aux|grep 'celery worker'
Vous verrez comme ça
username 29042 0.0 0.6 23216 14356 pts/1 S+ 00:18 0:01 /bin/celery worker ...
Ensuite, tuez l'ID de processus par
Sudo kill -9 process_id # here 29042
Si vous avez plusieurs processus, vous devez tuer tous les identifiants de processus en utilisant ci-dessus kill
commmand
Sudo kill -9 id1 id2 id3 ...
Du doc céleri
ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
OU si vous exécutez celeryd
ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9
Remarque
Si vous exécutez celery
dans supervisor
, même si vous tuez le processus, il redémarre automatiquement (si autorestart=True
dans le script du superviseur).
pkill -f "celery worker"
processus facile à tuer par des modèles de chaînes
celery -A proj control shutdown
Modifié, incrémentant un peu.
Vous devez utiliser cette commande à partir de la racine de votre projet, le "proj" est le nom de votre projet, par exemple si votre projet Django s'appelle DjangoApp la commande devrait ressembler à ceci
celery -a DjangApp control shutdown
cela devrait/arrêtera votre travailleur du céleri du projet
ps auxww | grep 'celery worker' | grep -v " grep " | awk '{print $2}' | xargs kill -9
celui-ci est très similaire à celui présenté précédemment mais amélioré car évitez l'erreur qui s'affiche lorsque vous tentez de tuer le processus grep.