2015-07-13 75 views
2

我在主管下運行gunicorn沒有問題,本週末它停止工作。gunicorn不supervisord下工作(但自己工作)

什麼時候application start內supervisorctl這是在應用程序日誌:

Traceback (most recent call last): 
File "/usr/local/bin/gunicorn", line 9, in <module> 
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 74, in run 
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 166, in run 
    super(Application, self).run() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 71, in run 
    Arbiter(self).run() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 192, in run 
    self.halt() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 292, in halt 
    self.stop() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 343, in stop 
    time.sleep(0.1) 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 209, in handle_chld 
    self.reap_workers() 
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 459, in reap_workers 
    raise HaltServer(reason, self.WORKER_BOOT_ERROR) 
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 

我運行的應用程序使用此配置:

[program:application] 
command=/usr/local/bin/gunicorn application:application -c /home/azureuser/rz-app/gunicorn.conf.py 
directory=/home/azureuser/rz-app/ 
user=root 
autostart=true 
autorestart=true 
redirect_stderr=True 
stdout_logfile = /home/azureuser/rz-app/rz-app_log.log 
stderr_logfile = /home/azureuser/rz-app/rz-app_errors.log 

的gunicorn.conf.py的內容是如下:

import multiprocessing 

bind = "0.0.0.0:5000" 

workers = multiprocessing.cpu_count() * 4 + 1 
user = 'root' 
group = 'root' 

max_requests = 200 
max_requests_jitter = 20 

如果我在終端上運行命令主管之外:gunicorn application:application -c gunicorn.conf.py事情按預期工作。

這是一個燒瓶應用程序,這裏是application.py文件:

import sys 
reload(sys) 
sys.setdefaultencoding("utf-8") 

import socket 
socket.setdefaulttimeout(12) 

from werkzeug.contrib.fixers import ProxyFix 

from app import application 
application.wsgi_app = ProxyFix(application.wsgi_app) 


if __name__ == '__main__': 

    application.run(host='0.0.0.0', port=5000, debug=False) 

我怎樣才能解決這個問題?

編輯:我注意到,它似乎是用root用戶,當外界的主管,我跑了一個問題:

sudo /usr/local/bin/gunicorn application:application -c /home/azureuser/rz-app/gunicorn.conf.py,一切正常,但是當我做:依次/usr/local/bin/gunicorn application:application -c /home/azureuser/rz-app/gunicorn.conf.py

sudo su它不起作用

+0

已經注意到,它似乎是根用戶的問題,當外部主管,我跑了: 'sudo/usr/local/bin/gunicorn application:application -c/home/azureuser/rz-app/gunicorn.conf.py',一切正常,但是當我這樣做時: 'sudo su'後跟'/ usr/local/bin/gunicorn application:application -c /home/azureuser/rz-app/gunicorn.conf。 py'它不起作用 – tiagosilva

回答

0

發現問題,它與gunicorn或supervisor無關,我的應用程序有一個依賴項,只在用戶下載,我注意到當我在命令前執行了sudo su,同樣的問題出現了,所以我登錄了發生的事情而根/usr/local/bin/gunicorn --log-file=- application:application -c /home/azureuser/rz-app/gunicorn.conf.py,加入--log-file=-,發現困擾着我的錯誤。

相關問題