supervisor 是基于 python 的任务管理工具,用来自动运行各种后台任务.而且简单易用。
安装supervisor :
pip install supervisor
生成配置文件:
echo_supervisord_conf > /etc/supervisord.conf
编辑配置文件:
vim /etc/supervisord.conf
在末尾追加一个任务,参数解释:
1 # supervisord.conf配置文件参数解释,,分号表示注释 2 3 [program:xx] ;是被管理的进程配置参数,xx是进程的名称 4 5 command=/opt/redis/src/redis-server /opt/redis/redis.conf ; 想要启动的程序命令,(可直接指定配置文件启动)命令和配置文件都是绝对路径 6 autostart=true ; 在supervisord启动的时候也自动启动 7 startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒 8 autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启 9 startretries=3 ; 启动失败自动重试次数,默认是3 10 user=tomcat ; 用哪个用户启动进程,默认是root 11 priority=999 ; 进程启动优先级,默认999,值小的优先启动 12 redirect_stderr=true ; 把stderr重定向到stdout,默认false 13 stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB 14 stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10 15 ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) 16 stdout_logfile=/opt/redis/logs/redis.log 17 stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程 18 killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程
启动supervisor:
supervisord -c /etc/supervisord.conf #启动supervisor
启动xx项目:
supervisorctl -c /etc/supervisord.conf restart xx #重启xx项目
这样就简单的实现了进程命令的自动管理!!
附上部分其他命令参数:
1 更新新的配置到supervisord 2 supervisorctl update 3 重新启动配置中的所有程序 4 supervisorctl reload 5 启动某个进程 6 supervisorctl start xx 7 查看正在守候的进程 8 supervisorctl 9 停止某一进程 10 pervisorctl stop xx 11 重启某一进程 12 supervisorctl restart xx 13 停止全部进程 14 supervisorctl stop all 15 注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。