감독자는 항상 '종료 상태 0'으로 프로세스를 종료합니다. 예상치 못한'


13

저는 현재 vps를 재 구축 중이며 gunicorn / wsgi django 프로세스를 관리하기 위해 감독자를 사용하고 싶습니다. 즉, 감독자는 프로세스를 계속 종료합니다.

2010-07-23 14:54:40,575 INFO supervisord started with pid 31391
2010-07-23 14:54:41,582 INFO spawned: 'projectx' with pid 31395
2010-07-23 14:54:41,691 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:42,695 INFO spawned: 'projectx' with pid 31401
2010-07-23 14:54:42,801 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:44,806 INFO spawned: 'projectx' with pid 31404
2010-07-23 14:54:44,912 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:47,917 INFO spawned: 'projectx' with pid 31408
2010-07-23 14:54:48,022 INFO exited: projectx (exit status 0; not expected)
2010-07-23 14:54:49,023 INFO gave up: projectx entered FATAL state, too many start retries too quickly

이것은 내가 사용하는 구성입니다.

[program:projectx]
command=/path/to/project/bin/gunicorn_django -c /path/to/project/project/gunicorn.conf.py /path/to/project/project/production.py
user=myuser
autostart=true
autorestart=true

이미 두 번 확인했으며 gunicorn_django가 올바르게 생성되면 상태 0을 반환합니다.

구성에 exitcodes = 0,2를 명시 적으로 추가하려고 시도했지만 차이가없는 것 같습니다. 프로세스가 올바르게 생성 된 것처럼 보이지만 감독자는 그렇지 않은 것으로 생각합니다.

누구든지 이것을 해결하는 방법에 대한 단서가 있습니까?

고마워, 비요른

답변:


12

gunicorn_django가 자체적으로 디먼을하는 경우, 프로그램 감독자가 관리하도록 설계된 것은 아닙니다. Supervisor는 관리 대상 프로그램이 포 그라운드에서 실행될 것으로 예상하여 종료 여부를 모니터링 할 수 있습니다.

감독자 문서를 참조하십시오 .


gunicorn은 기본적으로 자체적으로 철회하지 않지만 구성 파일에서 설정했습니다. 지적 해 주셔서 감사합니다.
Bjorn

4

좋아, 수수께끼 후 사용자와 관련이 있음을 알았습니다. 자식 프로세스를 특정 사용자로 실행하려고했습니다. 줄을 제거한 후 (아래 구성 참조) 모든 것이 잘 작동합니다.

Gunicorn 구성 :

bind = "127.0.0.1:3305"
workers = 2

감독자 구성 :

[program:projectx]
command=/path/to/project/bin/gunicorn_django -c /path/to/project/project/gunicorn.conf.py /path/to/project/project/production.py
; set the user here instead of in the gunicorn config.
user=user
autostart=true
autorestart=unexpected
stdout_logfile=/path/to/project/logs/project.log
redirect_stderr=true
exitcodes=1

1
이것을 육체로 만들고 싶다면 myuser에게 su'ing하고 gunicorn을 실행하면 힌트를 주어야합니다. 일반적인 의심은 로그 및 pid 파일이 쓰기 가능하지 않은 것입니다. 또는 앱에 파일 권한이 필요할 수도 있습니다. 더 나은 감독자 지원을 위해서는 관리자를 통해 gunicorn을 다시 시작하는 문제를 해결 했으므로 0.10으로 업그레이드해야합니다.
Paul J. Davis

0

수퍼바이저에서 http 데몬을 실행하려고 할 때 비슷한 오류가 발생했습니다.

이전 pid 파일을 제거하여 수정했습니다 : httpd_pid

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.