2015-03-27 38 views
14

Tôi có một dự án Django trên nút Ubuntu EC2, mà tôi đã sử dụng để thiết lập một không đồng bộ bằng cách sử dụng Celery.Cách dừng quy trình công nhân cần tây

Tôi đang theo dõi this cùng với tài liệu.

tôi đã có thể để có được một nhiệm vụ cơ bản làm việc tại cửa sổ dòng lệnh, sử dụng:

(env1)[email protected]:~/projects/tp$ celery --app=myproject.celery:app worker --loglevel=INFO 

Để bắt đầu một công nhân. Tôi đã thực hiện một số thay đổi đối với Python, nhưng nhận ra rằng tôi cần phải khởi động lại một nhân viên.

Từ dòng lệnh, tôi đã cố gắng:

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

Nhưng tôi có thể thấy rằng người lao động vẫn chạy.

Làm cách nào để tôi có thể xóa nó?

chỉnh sửa:

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

chỉnh sửa 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 
+0

thử này sudo ps auxww | grep celeryd | grep -v "grep" | awk '{print $ 2}' | sudo xargs kill -HUP' –

+0

vui lòng xem chỉnh sửa – user61629

+0

Sử dụng cùng lệnh thay vì '-HUP' sử dụng' -9' thay vì –

Trả lời

37

Hãy thử điều này trong terminal

ps aux|grep 'celery worker' 

Bạn sẽ thấy như thế này

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

Sau đó giết chết quá trình id bởi

sudo kill -9 process_id # here 29042 

Nếu bạn có nhiều quy trình, sau đó bạn phải giết tất cả quá trình id sử dụng trên kill commmand

sudo kill -9 id1 id2 id3 ... 

Từ cần tây doc

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

HOẶC nếu bạn đang chạy celeryd

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

Note

Nếu bạn đang chạy celery trong supervisor, mặc dù giết chết quá trình, nó tự động khởi động lại (nếu autorestart = True trong giám sát kịch bản).

Hope this helps

+0

Cảm ơn bạn đã xem nội dung này.Tôi đã thử (env1) ubuntu @ ip-172-31-22-65: ~/dự án/tp $ ps aux | grep công nhân cần tây grep: công nhân: Không có tập tin hoặc thư mục như vậy – user61629

+0

xin lỗi trích dẫn bị bỏ lỡ '' celery worker'' – itzMEonTV

+0

(env1) ubuntu @ ip-172-31-22-65: ~/dự án/tp $ ps aux | grep 'công nhân cần tây' -> ubuntu 12436 0.0 0.0 10460 936 điểm/7 S + 18:45 0:00 grep - -color = auto celery worker – user61629

11
pkill -f "celery worker" 

dễ dàng để giết quá trình mô hình chuỗi

3
celery -A proj control shutdown 
+0

Chỉ cần thông tin: Câu trả lời này đã bị một người nào đó gắn cờ là "chất lượng thấp" vì độ dài hoặc nội dung của nó. Điều này có thể là do không có văn bản giải thích để đi cùng với giải pháp được đề xuất của bạn. –

Các vấn đề liên quan