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
ターミナルでこれを試してください
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
注
celery
でsupervisor
を実行している場合、プロセスを強制終了しても、自動的に再起動します(監視スクリプトでautorestart=True
の場合)。
pkill -f "celery worker"
文字列パターンによるプロセスの強制終了が簡単
celery -A proj control shutdown
編集、リッテビットを増やします。
プロジェクトのルートからこのコマンドを使用する必要があります。「proj」はプロジェクトの名前です。たとえば、DjangoプロジェクトがDjangoAppと呼ばれる場合、コマンドは次のようになります。
celery -a DjangApp control shutdown
これは、プロジェクトからセロリ労働者を停止する必要があります/します
ps auxww | grep 'celery worker' | grep -v " grep " | awk '{print $2}' | xargs kill -9
これは前に示したものと非常に似ていますが、grepプロセスを強制終了しようとしたときに表示されるエラーを回避するために改善されました。