본문 바로가기
파이썬

파이썬 셀러리 작업자 프로세스를 중지하는 방법

by º기록 2020. 11. 27.
반응형

Celery 를 사용하여 비동기를 설정하는 데 사용한 Ubuntu EC2 노드에 Django 프로젝트가 있습니다.


다음을 사용하여 명령 줄에서 기본 작업을 수행 할 수있었습니다.

(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

참고

supervisor 에서 celery 를 실행하는 경우 프로세스를 종료하더라도 자동으로 다시 시작됩니다 (supervisor 스크립트에서 autorestart = True 인 경우).

 

참조 페이지 https://stackoverflow.com/questions/29306337

 

 

반응형

댓글