2016-10-20 6 views
1

nginx 및 uwsgi에서 실행중인 python/Django 프로젝트 (myproject)가 있습니다.관리자가 다시 시작되면 좀비 uwsgi 프로세스가 발생합니다.

supervisord를 통해 uwsgi 명령을 실행 중입니다. 이것은 완벽하게 작동하지만 supervisord를 다시 시작하면 좀비 프로세스가 생성됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이 일을 깔끔하게하기 위해 무엇을 간과합니까? 어떤 조언?

수퍼바이저 서비스가 너무 오래 걸립니다.를 내가 하나의 시스템에서 여러 준비 서버를 실행하고, 즉 : 그 시점에서 나는 stage2_BB_wsgi 기다리고

정보는, stage3_BB_wsgi, stage4_BB_wsgi 참고하기

포인트를 죽을 supervisor.log 파일에 다음을 발견했다 스테이지 2 .. stageN

supervisor.conf 파일 추출 [program:stage2_BB_wsgi] command=uwsgi --close-on-exec -s /home/black/stage2/shared_locks/uwsgi_bb.sock --touch-reload=/home/black/stage2/shared_locks/reload_uwsgi --listen 10 --chdir /home/black/stage2/myproject/app/ --pp .. -w app.wsgi -C666 -H /home/black/stage2/myproject/venv/ user=black numprocs=1 stdout_logfile=/home/black/stage2/logs/%(program_name)s.log stderr_logfile=/home/black/stage2/logs/%(program_name)s.log autostart=true autorestart=true startsecs=10 exitcodes=1 stopwaitsecs=600 killasgroup=true priority=1000

미리 감사드립니다.

답변

1

stopsignalINT 또는 QUIT으로 설정해야합니다.

기본적으로 supervisord은 프로그램을 다시 시작할 때 SIGTERM을 보냅니다. 이것은 uwsgi을 죽이지 않으며, 그것과 그것의 노동자 만 다시 적재한다.