supervisor安装和使用

1.介绍

Supervisor
(http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。

2.Ubuntu14.04安装

sudo apt-get install supervisor

3.配置说明

[program:test]  #
directory = /data/test/ ;程序的启动目录
command = php test.php  ;执行命令
autostart = true        ;在 supervisord 启动的时候也自动启动
startsecs = 5           ;启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true      ; 程序异常退出后自动重启
startretries = 3        ; 启动失败自动重试次数,默认是 3
user = root             ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
stdout_logfile = /data/logs/usercenter_stdout.log   ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
process_name        ;进程名,可以使用%(program_name)s
numprocs            ;启动进程数%(process_num)s 从0开始
[group:testgroup]
programs=test       ;任何在[program:x]中定义的x

4.使用案例

[program:test]
directory = /data/test/
command= /usr/bin/php  test.php %(program_name)s %(process_num)s
process_name=%(program_name)s-%(process_num)s
numprocs=5
autostart=true
autorestart=true
redirect_stderr = true
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=20
stdout_logfile=/data/logs/supervisor/test.log
[group:testgroup]
programs=test

5.备注

test.php内容如下

<?php
while(1) {
echo rand(1000,9999) . PHP_EOL;
}

        6.命令

### 常用命令
查看程序状态
sudo supervisorctl status
读取新增配置(不启动)
sudo supervisorctl reread
重启配置更改过的程序
sudo supervisorctl update
### 控制所有进程
sudo supervisorctl start all
sudo supervisorctl stop all
sudo supervisorctl restart all
### 控制指定进程
sudo supervisorctl stop testgroup:* 
sudo supervisorctl start testgroup:*
sudo supervisorctl restart testgroup:*
sudo supervisorctl stop test
sudo supervisorctl start test
sudo supervisorctl restart test



Tagged . Bookmark the permalink.

Comments are closed.