使用 supervisor

2017-06-03  本文已影响14人  木十2036

安装

我用的是高版本的 supervisor-3.3.1,利用python安装的

     yum install python-setuptools

     easy_install supervisor

也可以直接使用yum install supervisor安装,

但是centos上默认的是2.1版本,自己的想实现的需求,半天没有配置成功,所有使用了高版本的supervisord。

安装后配置文件在 /etc/supervisord.conf

开始配置 

可以直接在supervisord.conf配置文件里写

[program:saveAvator]

command=php /home/wwwroot/laravel42/artisan queue:listen --queue=saveAvatorQueue

也可以使用子配置方式

[include]

files=/home/wwwroot/laravel/app/config/supervisord/.*conf(.conf和.ini都行)

然后在/home/wwwroot/laravel/app/config/supervisord/目录下添加各种 .conf 的文件

例如添加一个 saveAvator.conf内容还是

[program:saveAvator]

command=php /home/wwwroot/laravel42/artisan queue:listen --queue=saveAvatorQueue

检测配置的program:saveAvator是否成功

使用 ps -ef

看到进程已经有了配置的让supervisord管理的saveAvator子进程 

管理supervisord命令

/etc/init.d/supervisord start 开启

/etc/init.d/supervisord stop 停止

常用配置:

[program:usercenter]

directory = /home/leon/projects/usercenter ; 程序的启动目录

command = gunicorn -c gunicorn.py wsgi:app  ; 启动命令,可以看出与手动在命令行启动的命令是一样的

autostart = true    ; 在 supervisord 启动的时候也自动启动

startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了

autorestart = true  ; 程序异常退出后自动重启

startretries = 3    ; 启动失败自动重试次数,默认是 3

user = leon          ; 用哪个用户启动

redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false

stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB

stdout_logfile_backups = 20    ; stdout 日志文件备份数

; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

stdout_logfile = /data/logs/usercenter_stdout.log

; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH

; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

上一篇 下一篇

猜你喜欢

热点阅读