简介
Supervisor 是由python语言编写、基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。
运行环境:*nix,Python2.7
安装supervisor
1 | $ pip install supervisor |
安装成功后Supervisor会提供一个命令行来生成配置文件:
1 | $ echo_supervisord_conf > /etc/supervisord.conf |
然后编辑配置文件:
1 | $ vi /etc/supervisord.conf |
查看配置提示:
;[program:theprogramname] ; 冒号后为自定义的进程名,为Supervisor使用
;command=/bin/cat ; 执行程序路径,可带参数
;process_name=%(program_name)s ; 进程名,默认为 %(program_name)s
;numprocs=1 ; 进程数,默认 1
;directory=/tmp ; 执行前的路径,默认为 无
;umask=022 ; umask for process (default None)
;priority=999 ; 执行权限,默认 999
;autostart=true ; 在supervisord启动时启动,默认 是
;autorestart=unexpected ; 重启的条件,默认 unexpected(意外关闭时)
;startsecs=1 ; 等待启动的秒数,默认 1
;startretries=3 ; 最大启动失败次数,默认 3
;exitcodes=0,2 ; 意外退出码,默认 0,2
;stopsignal=QUIT ; 杀死进程的信号,默认 TERM
;stopwaitsecs=10 ; 杀死进程最大等待秒数,默认 10
;stopasgroup=false ; 向UNIX进程组发送停止信号,默认 否
;killasgroup=false ; 向UNIX进程组发送杀死信号,默认 否
;user=chrism ; 启动时向UNIX设置setuid
;redirect_stderr=true ; 重定向标准错误到标准输出,默认 否
;stdout_logfile=/a/path ; 标准输出路径, NONE 为无; 默认 AUTO
;stdout_logfile_maxbytes=1MB ; 日志文件最大值,默认 50MB
;stdout_logfile_backups=10 ; 日志文件备份时间,默认 10
;stdout_capture_maxbytes=1MB ; capturemode大小,默认 0
;stdout_events_enabled=false ; emit events on stdout writes (default false)
;stderr_logfile=/a/path ; 标准输出路径, NONE 为无; 默认 AUTO
;stderr_logfile_maxbytes=1MB ; 错误日志文件最大值,默认 50MB
;stderr_logfile_backups=10 ; 错误日志文件备份时间,默认 10
;stderr_capture_maxbytes=1MB ; capturemode大小,默认 0
;stderr_events_enabled=false ; emit events on stderr writes (default false)
;environment=A="1",B="2" ; process environment additions (def no adds)
;serverurl=AUTO ; override serverurl computation (childutils)
;配置样例
[program:crop]
command=python /alidata/python/CropUp.py
process_name=%(program_name)s
stdout_logfile=/alidata/python/crop.log
stderr_logfile=/alidata/python/crop.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
开始使用
确认上面的配置无误后启动:
1 | $ supervisord -c /etc/supervisord.conf |
几种控制命令:
supervisorctl status crop 任务状态
supervisorctl stop crop 停止任务
supervisorctl start crop 开启任务
supervisorctl reload 重载