# supervisor 配置:
[program:uwsgi]
command=/home/an/.virtualenvs/show-tools/bin/uwsgi --http 0.0.0.0:80%(process_num)02d --ini uwsgi.ini # 不同的uwsgi实例监听不同的端口号。不能重复,否则只能启动一个实例,另一个会失败,报告 地址已经被占用的错误
directory=/home/an/safety_tools
stopasgroup=true
user=an
numprocs=2
process_name=%(program_name)s_%(process_num)02d # 启动多个实例需要在进程名中添加 process_num 变量作为进程名的一部分,在supervisor的管理页面可以看到,本例为 uwsgi_00 和 uwsgi_01
autostart=true
autorestart=true
stderr_logfile=logs/super_visor_err.log
stdout_logfile=logs/super_visor_out.log
[uwsgi]
;http:0.0.0.0:9000
;socket = 0.0.0.0:8001
chdir = /home/an/safety_tools # django 项目目录
wsgi-file = conf/wsgi.py
static-map = /static/=static_files # django STATIC_ROOT 目录
; 开启业务线程支持 否则程序中开启的线程无法执行
enable-threads = true
master = true
; 检测 uwsgi服务器内部状态
;stats = 0.0.0.0:9191 # 这个不能写死在配置文件里,否则,会报 0.0.0.0:9191 地址已经被占用的错误。导致只能启动一个uwsgi实例。如果一定启用该功能,可以在 supervisor中,uwsgi启动命令那里通过命令行参数的方式添加;参考 --http
;线程stuck 30s 后 kill
harakiri = 30
;logto = logs/uwsgi.log
;virtualenv = /home/an/.virtualenvs/backend
;processes = 2 ;多进程
;threads = 2 ; 多线程