supervisior安装配置

安装

1 预备环境

安装supervisor之前,需要安装python的相关环境。

yum -y install python-pip

2 下载源码

在实际部署过程中,发现使用yum安装可能会出现很多问题,因此,建议使用源码安装。可从github上下载源码:

git clone https://github.com/Supervisor/supervisor.git

3 程序安装

源码中存在setup.py文件,只需执行如下命令便可完成supervisor的安装:

python ./setup.py install

配置

echo_supervisord_conf > /etc/supervisord.conf

在/etc 目录下生成配置文件

; 包含其他的配置文件
    [include]
    files = relative/directory/*.ini    ; 可以是 *.conf 或 *.ini

修改/etc/supervisord.conf [include] 自己的项目配置

[program:usercenter]
directory = /home/leon/projects/usercenter       ; 程序的启动目录
command = gunicorn -c gunicorn.py wsgi:app         ; 启动命令,可以看出与手动在命令行启动的命令是一样的
process_name=%(program_name)s       ; process_name expr (default %(program_name)s)
numprocs=1           ; number of processes copies to start (def 1)
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 1        ; 启动 1 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = leon          ; 用哪个用户启动
redirect_stderr = true          ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 10     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log
;这一配置项的作用是:如果supervisord管理的进程px又产生了若干子进程,使用supervisorctl停止px进程,停止信号会传播给px产生的所有子进程,确保子进程也一起停止。这一配置项对希望停止所有进程的需求是非常有用的。
stopasgroup=true
 
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改PYTHONPATH ;process environment additions      
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

编辑配置文件

命令

【启动supervisord】

supervisord -c /etc/supervisord.conf   或  supervisord 

【停止supervisord】

supervisorctl shutdown

【重新加载配置文件】

supervisorctl reload

【进程管理】

1、启动supervisord管理的所有进程

supervisorctl start all

2、停止supervisord管理的所有进程

supervisorctl stop all

3、启动supervisord管理的某一个特定进程

supervisorctl start program-name // program-name为[program:xx]中的xx

4、停止supervisord管理的某一个特定进程

supervisorctl stop program-name  // program-name为[program:xx]中的xx

5、重启所有进程或所有进程

supervisorctl restart all // 重启所有supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx

6、查看supervisord当前管理的所有进程的状态

supervisorctl status

你可能感兴趣的:(supervisior安装配置)