supervisor使用
supervisor安装请参考flask应用部署——安装环境
生成配置文件
1# cd /etc 2# mkdir -p supervisord/conf.d 3# echo_supervisord_conf > /etc/supervisord/supervisord.conf
修改supervisord.conf
1# vim supervisord.conf # G直接跳到最后一行
取消下面注释并修改
1[include] 2files = /etc/supervisord/conf.d/*.ini
ok,现在可以在/etc/supervisord/conf.d/目录下创建配置文件了
1# vim honmaple.com.ini
输入以下内容
1# 进程的名字 2[program:website] 3# 命令 4command=/home/www/honmaple.com/venv/bin/gunicorn run:app -c /home/www/honmaple.com/gunicorn.conf 5# 网站目录 6directory=/home/www/honmaple.com 7# 进程所属用户 8user=www 9# 自动重启设置。 10autostart=true 11autorestart=true 12# 日志存放位置。 13stdout_logfile=/home/www/honmaple.com/logs/gunicorn_supervisor.log
上面有几处需要注意的地方
创建新用户www
1# useradd www 2# passwd www #设置密码 3# su - www 4$ cd 5$ mkdir -p honmaple.com/logs
建立虚拟环境(honmaple.com/目录下)
1$ virtualenv-3.4 venv 2$ . venv/bin/activate
gunicorn配置
1# gunicorn.conf 2workers = 4 3bind = '127.0.0.1:8000'
简单的web应用
1#run.py 2from flask import Flask 3app = Flask(__name__) 4 5@app.route('/') 6def hello_world(): 7 return 'Hello World!' 8 9if __name__ == '__main__': 10 app.run()
加载supervisor配置
1# supervisord -c /etc/supervisord/supervisord.conf 2# supervisorctl -c /etc/supervisord/supervisord.conf reload
supervisor遇到的问题
提示
1Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord. 2For help, use /usr/bin/supervisord -h 3...fail!
解决办法
1# unlink /tmp/supervisor.sock
提示
1error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
解决办法
1# supervisord -c /etc/supervisord/supervisord.conf 2# supervisorctl -c /etc/supervisord/supervisord.conf reload
提示
ERROR (no such process),请仔细查看配置文件是否有误
