supervisor用来管理非daemon程序!将自动转换为daemon程序
安装:
yum install supervisor
配置:
默认配置文件路径:
/etc/supervisord.conf
主要几个配置更改
1.可以通过一个http网页进行管理,这里默认都是关闭的,开启修改用户名,密码即可,记住地址默认127.0.0.1
[inet_http_server] ; inet (TCP) server disabled by default port=0.0.0.0:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is no username (open server)) password=123 ; (default is no password (open server))
2.修改扩展配置,默认是.ini,修改.conf
[include] files = supervisord.d/*.conf
3.扩展配置示例
vim /etc/supervisord.d/car_push.conf
[program:car_push] ;process_name=%(program_name)s_%(process_num)02d ;process_name=car_push;定义supervisor内部进程名称,通过这个可以启动,停止,重启 command=/usr/bin/php /home/wwwroot/project/car/artisan car:push ;跟随supervisor启动 autostart=true ;程序异常之后自动重启 autorestart=true ;启动5秒之后,没有异常当做正常启动 startsecs=5 ;启动失败之后尝试重启几次 startretries=3 user=www ;启动进程数量,注意这里如果大于1,则process_name则%(program_name)s_%(process_num)02d只能这样类似指定,要不然进程名会重复 numprocs=1 redirect_stderr=true ;stdout 日志文件大小,默认 50MB stdout_logfile_maxbytes=30MB ;stdout 日志文件备份数 stdout_logfile_backups=10 stdout_logfile=/home/wwwroot/project/car/storage/wslogs/ws.log;
常用命令
启动程序
supervisord -c /etc/supervisord.conf
关闭supervisor
1.关闭所有的服务,传统,可以写脚本
supervisorctl stop all
ps -aux |grep sup
kill 对应进程号
查看进程启动状态
supervisorctl status
关闭某个进程
supervisorctl stop car_push
启动/重启某个进程
supervisorctl start/restart car_push
重新加载
supervisorctl update car_push
重新加载新任务
supervisorctl reread
supervisorctl update car_push
supervisorctl start car_push
通过网页进行管理
通过上面配置文件中配置http服务,可以打开对应的地址端口进行网页管理
nginx代理
server { listen 80; server_name supervisor.xx.com; location / { proxy_pass http://127.0.0.1:9001/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; } }