Supervisord,Flask,Tornado(退出状态1,不预期)

有一些问题让主pipe来运行我的龙卷风应用程序。

我有一个使用Flask构build的REST API,使用Tornado来尝试并提供它。 我遇到的问题是,当我尝试与pipe理员一起运行时,似乎无法导入其他支持python软件包。

inf_api是烧瓶API。

这里是龙卷风的脚本

from influence_api import app from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop from tornado.options import define, options define("port", default=8080, help="Port to listen on", type=int) if __name__ == '__main__': options.parse_command_line() http_server = HTTPServer(WSGIContainer(app)) http_server.listen(options.port) IOLoop.instance().start() 

程序部分的supervisord.conf(我已经尝试了几次迭代)

 [program:tornado-8080] autostart=true autorestart=true environment=USER=root,PYTHONPATH=/usr/bin/ command=python /media/sf_Projects/inf_api/inf_api/inf_server_nginx.py stderr_logfile = /var/log/supervisord/tornado-stderr.log stdout_logfile = /var/log/supervisord/tornado-stdout.log 

我曾试着玩过多less环境,多less直接放在命令中。 包括像…..

 user=root autostart=true autorestart=true exitcodes=0,1,2 command=env PATH="/usr/bin/python" /media/sf_Projects/inf_api/inf_api/inf_server_nginx.py --port=8081 command=/usr/bin/python /media/sf_Projects/inf_api/inf_api/inf_nginx.py --port=8081 stderr_logfile = /var/log/supervisord/tornado-stderr.log stdout_logfile = /var/log/supervisord/tornado-stdout.log 

从主pipe输出错误

 2014-02-25 16:55:24,917 INFO spawned: 'tornado-8080' with pid 3527 2014-02-25 16:55:25,156 DEBG 'tornado-8080' stderr output: Traceback (most recent call last): File "/media/sf_Projects/inf_api/inf_api/inf_server_nginx.py", line 11, in <module> 2014-02-25 16:55:25,157 DEBG 'tornado-8080' stderr output: from inf_api import app 2014-02-25 16:55:25,157 DEBG 'tornado-8080' stderr output: File "/media/sf_Projects/inf_api/inf_api/inf_api.py", line 159, in <module> 2014-02-25 16:55:25,158 DEBG 'tornado-8080' stderr output: mongo_ip = read_config('Database')['mongoip'] 2014-02-25 16:55:25,158 DEBG 'tornado-8080' stderr output: File "/media/sf_Projects/inf_api/inf_api/inf_api.py", line 114, in read_config 2014-02-25 16:55:25,158 DEBG 'tornado-8080' stderr output: options = config.options(section) 2014-02-25 16:55:25,159 DEBG 'tornado-8080' stderr output: File "/usr/lib/python2.7/ConfigParser.py", line 279, in options raise NoSectionError(section) ConfigParser.NoSectionError: No section: 'Database' ......... 2014-02-25 20:29:26,924 INFO exited: tornado-8080 (exit status 1; not expected) 

像使用或不使用SSL一样运行龙卷风就可以工作,Flask API也是一样。 冉监督与sudo和没有….

正如你所看到的我难住 – 任何想法?

认为我把它整理出来:确保我使用的目录中的所有python文件都是可执行文件

 chmod +x <FILES> 

修改了supervisord文件的程序部分,如下所示

 [program:inf_svr] process_name=inf_svr%(process_num)s directory=/media/sf_Projects/inf_api/inf_api/ environment=USER=root,PYTHONPATH=/usr/bin/ command=python /media/sf_Projects/inf_api/inf_api/inf_server_nginx.py startsecs=2 user=root autostart=true autorestart=true numprocs=1 numprocs_start=8080 stderr_logfile = /var/log/supervisord/tornado-stderr.log stdout_logfile = /var/log/supervisord/tornado-stdout.log