输入以下命令即可安装
sudo apt-get install supervisor
配置文件存放目录在
cd /etc/supervisor/conf.d
一个服务对应一个.conf文件
以下是我的redis配置文件redis.conf
[program:redis] command=/usr/local/bin/redis-server /var/lib/redis/redis.conf autostart=true autorestart=true user=redis stdout_logfile=/var/log/redis/redis-stdout.log stderr_logfile=/var/log/redis/redis-stderr.log
program:后面表示服务名字, 会显示在管理工具里面,我给它命名为redis
command表示需要运行的命令,每次start都会执行这个命令
autostart表示服务是否需要跟随supervisor启动
autorestart表示当服务挂掉的时候是否需要自动重启
user表示使用哪个用户运行该命令,我新建了一个专门的redis来跑redis服务,一般使用自己的账号就行了,除非需要特殊权限
stdout_logfile和stderr_logfile用户存储标准输出和错误的日志文件
还有一些其他的参数,如environment存储环境标量,redirect_stderr,stdout_logfile_backups等参数可以参考官方的文档说明
http://supervisord.org/configuration.html
先进入管理界面
sudo supervisorctl
输入help可以看到有很多命令
一般最常用的就是start启动服务 stop停止服务 还有update就是重新读取所有的服务的配置,如果有新增的配置文件就会增一个服务,如果服务配置有更改会重启服务(慎用,如果你改了配置文件而不想立刻重启服务)
supervisor> stop redis redis: stopped supervisor> start redis redis: started supervisor> restart redis redis: stopped redis: started supervisor>
有时候会有希望同时启动或者关闭一组程序,那你可以使用程序组,只需要在配置目录下面加上一个额外的配置文件即可
/etc/supervisor/conf.d
程序组的配置文件,在programs赋值为你需要管理的成员的服务名称,例如我这个组名叫test-group,它有两个成员test-group-1和test-group-2,每个成员之间用逗号隔开即可
[group:test-group] programs=test-group-1,test-group-2
组成员的配置文件和普通成员没什么区别
[program:test-group-1] command=xxx autostart=true autorestart=true user=redis stdout_logfile=xxx stderr_logfile=xxx
[program:test-group-2] command=xxx autostart=true autorestart=true user=redis stdout_logfile=xxx stderr_logfile=xxx
启动这个组的所有服务只需要在supervisorctl下面使用命令
supervisor> start test-group:*
停止和重启以及更新等其它命令类似使用
相当于supervisorctl内部的服务名字从test-group-1变为test-group:test-group-1 ,组名冒号服务名的格式。