让主管运行我的龙卷风应用程序时遇到一些问题。
我有一个使用Flask构建的REST API,使用Tornado尝试提供它。我遇到的问题是,当我尝试与主管一起运行时,似乎未能导入其他支持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
我已经尝试过在环境中放入了多少,以及在命令中直接放了多少。包括像......这样的变化。
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
主管输出错误
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运行Tornado就可以了,就像Flask API独立一样。与sudo一起监督,没有......
你可以看到我很难过 - 有什么想法吗?
答案 0 :(得分:2)
您可能正在查看配置文件的错误目录。
将directory
设置为运行supervisord。
directory=/media/sf_Projects/inf_api/
我不确定这是否是您想要的目录,但这是可行的方法。
答案 1 :(得分:0)
我想我把它整理出来了。确保我使用的目录中的所有python文件都是可执行的
chmod +x <FILES>
修改了supervisord文件的Program部分,如下所示
[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
龙卷风应用程序启动时没有错误并为api提供服务。到nginx .....