web-dev-qa-db-ja.com

セロリワーカープロセスを停止する方法

UbuntuのEC2ノードにDjangoプロジェクトがあります。これを使用して、Celeryを使用して非同期をセットアップしました。

私は this をドキュメントと共にフォローしています。

次を使用して、コマンドラインで基本的なタスクを実行することができました。

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

ワーカーを開始します。それ以来、Pythonにいくつかの変更を加えましたが、ワーカーを再起動する必要があることに気付きました。

コマンドラインから、私は試しました:

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

しかし、ワーカーがまだ実行されていることがわかります。

どうすれば殺すことができますか?

編集:

(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).

編集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
26
user61629

ターミナルでこれを試してください

ps aux|grep 'celery worker'

このように表示されます

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

次にプロセスIDを強制終了します

Sudo kill -9 process_id # here 29042

複数のプロセスがある場合は、上記のkillコマンドを使用してすべてのプロセスIDを強制終了する必要があります

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

celerysupervisorを実行している場合、プロセスを強制終了しても、自動的に再起動します(監視スクリプトでautorestart=Trueの場合)。

54
itzMEonTV
pkill -f "celery worker"

文字列パターンによるプロセスの強制終了が簡単

26
alan_wang

celery -A proj control shutdown

編集、リッテビットを増やします。

プロジェクトのルートからこのコマンドを使用する必要があります。「proj」はプロジェクトの名前です。たとえば、DjangoプロジェクトがDjangoAppと呼ばれる場合、コマンドは次のようになります。

celery -a DjangApp control shutdown

これは、プロジェクトからセロリ労働者を停止する必要があります/します

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

これは前に示したものと非常に似ていますが、grepプロセスを強制終了しようとしたときに表示されるエラーを回避するために改善されました。

0
user2735883