2015-03-27 17 views
14

Mam projekt Django na węźle Ubuntu EC2, którego używałem do skonfigurowania asynchronicznego przy użyciu Celery.Jak zatrzymać proces produkcji selera

Obserwuję this wraz z dokumentami.

byłem w stanie uzyskać podstawowe zadanie pracuje w wierszu poleceń, używając:

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

Aby rozpocząć pracownika. Od tego czasu wprowadziłem pewne zmiany w Pythonie, ale zdałem sobie sprawę, że muszę ponownie uruchomić pracownika.

Z linii poleceń, próbowałem:

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

Ale widzę, że pracownik nadal pracuje.

Jak mogę to zabić?

edit:

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

edit 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

spróbować tej 'sudo ps auxww | grep celeryd | grep -v "grep" | awk "{print 2 $}" sudo xargs kill -HUP' –

+0

zobacz edycję – user61629

+0

Użyj tego samego polecenia zamiast '-HUP' użyj' -9' zamiast –

Odpowiedz

37

Spróbuj tego w terminalu

ps aux|grep 'celery worker' 

Zobaczysz jak to

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

Następnie zabić proces id przez

sudo kill -9 process_id # here 29042 

Jeśli masz wiele procesów, a następnie trzeba zabić wszystkie identyfikator procesu przy użyciu powyżej kill commmand

sudo kill -9 id1 id2 id3 ... 

Od doc selera

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

LUB jeśli używasz celeryd

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

Uwaga

Jeśli używasz celery w supervisor, nawet zabić proces, automatycznie uruchomi się ponownie (jeśli autorestart = True w skrypcie administratora).

Nadzieja to pomaga

+0

Dzięki za spojrzenie na to.Próbowałem (env1) ubuntu @ ip-172-31-22-65: ~/projects/tp $ ps aux | grep seler worker grep: worker: Brak takiego pliku lub katalogu – user61629

+0

przepraszam brakujące cytaty ''pracownik selera'' – itzMEonTV

+0

(env1) ubuntu @ ip-172-31-22-65: ~/projects/tp $ ps aux | grep 'seler worker' -> ubuntu 12436 0.0 0.0 10460 936 pkt/7 S + 18:45 0:00 grep - -color = auto seler worker – user61629

11
pkill -f "celery worker" 

łatwo zabić proces wzorców smyczkowych

3
celery -A proj control shutdown 
+0

Po prostu: FYI: ta odpowiedź została oznaczona przez kogoś jako "niskiej jakości" ze względu na jej długość lub treść. Może to być spowodowane tym, że nie ma tekstu wyjaśniającego dołączonego do sugerowanego rozwiązania. –