Süpervizör her zaman 'çıkış durumu 0; beklenmiyor '


13

Şu anda vps'imi yeniden inşa ediyorum ve gunicorn / wsgi django süreçlerimi yönetmek için süpervizör kullanmak istiyorum. Mesele şu ki, denetimci süreçlerden çıkmaya devam ediyor:

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

Bu kullanıyorum yapılandırma:

[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

Zaten iki kez kontrol ettim ve gunicorn_django doğru şekilde doğduğunda 0 durumunu döndürür.

Yapılandırmaya açıkça çıkış kodları = 0,2 eklemeyi denedim, ancak bu da bir fark yaratmıyor. Sürecin doğru bir şekilde ortaya çıktığı görülüyor, ancak süpervizör bunu yapmadığını düşünüyor.

Herkes bu sorunu çözmek için bir ipucu var mı?

Teşekkürler Bjorn

Yanıtlar:


12

Gunicorn_django kendini caydırıyorsa, yönetmek için tasarlanmış bir program süpervizörü değildir. Süpervizör, denetlenen programlarının ön planda çalışmasını bekler, böylece çıkıp çıkmadıklarını izleyebilir.

Bkz. Denetim dokümanları .


gunicorn varsayılan olarak kendini deamonize etmez, ancak yapılandırma dosyamda ayarladım. Kaldırdım, işaret ettiğin için teşekkürler.
Bjorn

4

Tamam, bazı şaşırtıcı sonra kullanıcılar ile ilgisi olduğunu anladım. Çocuk süreçlerimi belirli bir kullanıcı olarak çalıştırmaya çalıştım. Hattı çıkardıktan sonra (aşağıdaki yapılandırmamı inceleyin), her şey iyi çalışıyor.

Gunicorn yapılandırma:

bind = "127.0.0.1:3305"
workers = 2

Süpervizör yapılandırması:

[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
Sadece bunu not etmek istiyorsanız, kullanıcıma dava açmak ve silahı çalıştırmak bir ipucu vermelidir. Her zamanki şüpheliler yazılabilir olmayan günlük ve pid dosyalarıdır. Alternatif olarak, uygulamanızın dosya izinlerine de ihtiyacı olabilir. Ve sadece daha iyi süpervizör desteği için, gunicorn'u süpervizörle (veya bu konuda runit) yeniden başlatmayla ilgili bir sorunu çözdüğümüz için 0.10'a yükseltmeniz gerektiğini unutmayın.
Paul J. Davis

0

Süpervizör altında bir http arka plan programı yürütmeye çalışırken benzer bir hatayla karşılaştım.

Eski pid dosyasını kaldırarak düzeltildi: httpd_pid

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.