linux 使用supervisor管理开机启动uwsgi

记录目的:网上的方法虽然写的很清楚,但是中间还是踩了一些坑,因此这次记录下来,以便日后回顾防坑。

先简单叙述下环境:

1、系统:ubuntu16.04 desktop。

2、pthon版本:2.7 和 3.5

3、网站使用的框架: django2.0.2 (python3)

4、网站发布方式:Nginx + uwsgi + django, uwsgi和nginx的配置此处不讲,毕竟不是主角

下面是实现supervisor的步骤:

step1. apt-get install supervisor (一说 pip install supervisor 也可,但是要注意supervisor仅支持python2-pip 安装)

step2. 配置supervisord.conf

  1. cd /etc/supervisor
  2. vim supervisord.conf
  3. 添加如下信息:

linux 使用supervisor管理开机启动uwsgi


[program:uwsgi] ; 注意program:不能省,类似于声明这是你定义的自启动程序

command=/usr/local/bin/uwsgi --ini /var/www/workdir/script/uwsgi.ini ; --ini 后跟ini配置文件的目录

stopsignal=QUIT

autostart=true ; 设置该程序在supervisor启动后自动启动

autorestart=true ; 当该程序停止后,无条件重新启动。有三个选项分别为true false 和 unexcepted.

stdout_logfile=/var/www/workdir/script/supervisor.log ; 日志保存路径

stderr_logfile=/var/www/workdir/script/supervisor_err.log ; 错误保存路径


step3. 载入添加的自启动程序

首先切换到root权限(非root会报错error <class 'socket.error'>, [Errno 13] Permission denied: file: /use/lib/python2.7/socket.py line: 228)

接着输入supervisorctrl reload, 会提示Restart supervisord

最后,检验是否成功自启动了程序,输入 ps -ef|grep uwsgi 查看uwsgi是否执行。

相关推荐