supervisor:进程管理工具
一,安装(任何一种方式)
- apt-get install supervisor
- easy_install supervisor
- pip install supervisor
二,配置
- 配置supervisor.conf
- 添加web控制界面
2. 启动进程配置说明
; 管理单个进程的配置,可创建多个,下面是所有可能的配置选项 ;[program:theprogramname] ;command=/bin/cat ; 启动进程的命令 使用相对路径,可以加参数 ;process_name=%(program_name)s ; 进程名称 表达式 (默认 %(program_name)s) ;numprocs=1 ; 进程数目 (def 1) ;directory=/tmp ; 执行命令所在的目录 (def no cwd) ;umask=022 ; 进程默认权限 (default None) ;priority=999 ; 进程启动相对优先权 (default 999) ;autostart=true ; 跟随supervisor启动时启动 (default: true) ;autorestart=unexpected ; 计划启动 (default: unexpected) ;startsecs=1 ; 延时启动 (def. 1) ;startretries=3 ; 最多连续启动失败 (default 3) ;exitcodes=0,2 ; 进程结束代码 (default 0,2) ;stopsignal=QUIT ; signal used to kill process (default TERM) ;stopwaitsecs=10 ; 最长结束等待时间,否则使用 SIGKILL (default 10) ;stopasgroup=false ; 是否想UNIX进程组发送结束信号 (default false) ;killasgroup=false ; SIGKILL UNIX 进程组 (def false) ;user=chrism ; 设置启动此程序的用户 ;redirect_stderr=true ; 重定向程序的标准错误到标准输出 (default false) ;stdout_logfile=/a/path ; 标准输出的日志路径, NONE for none; default AUTO ;stdout_logfile_maxbytes=1MB ; 日志文件最大值,否则循环写入 (default 50MB) ;stdout_logfile_backups=10 ; 标准输出日志备份数目 (default 10) ;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) ;stdout_events_enabled=false ; emit events on stdout writes (default false) ;stderr_logfile=/a/path ; 标准错误输出日志路径, NONE for none; default AUTO ;stderr_logfile_maxbytes=1MB ; 日志文件最大值,否则循环写入 (default 50MB) ;stderr_logfile_backups=10 ; 标准错误日志备份数目 (default 10) ;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) ;stderr_events_enabled=false ; emit events on stderr writes (default false) ;environment=A="1",B="2" ; 进程附加环境 (def no adds) ;serverurl=AUTO ; override serverurl computation (childutils)
配置范例:
注:
- 该文件必须放在conf.d文件夹下
- 配置文件名后缀必须为.conf
三,管理工具
- supervisorctl 管理终端:
supervisorctl status: 查看当前运行的进程列表
supervisorctl stop xxx: 停止某一个进程(xxx),xxx为[program:theprogramname]里配置的值。
supervisorctl start xxx: 启动某个进程
supervisorctl restart xxx: 重启某个进程
supervisorctl stop groupworker: 重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
2.web
3.重新启动
ps -ef | grep supervisord
/etc/init.d/supervisor start
四,FAQ
* Starting Supervisor daemon manager...... Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord. For help, use /usr/bin/supervisord -h ......fail!
方法:http://stackoverflow.com/questions/14479894/stopping-supervisord-shut-down
作者:奋斗的珞珞
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.