supervisor安装使用

centos

安装

方式一

yum update

yum install -y supervisor

//yum安装会自动创建systemd脚本,可用systemd管理
systemctl enable supervisord //开机自启

systemctl disable supervisord //禁用开机自启

systemctl start supervisord//启动supervisor

systemctl reload supervisord //重新加载配置

systemctl stop supervisord //停止supervisor

方式二

yum update

yum install -y python-setuptools

easy_install supervisor

echo_supervisord_conf >/etc/supervisord.conf //创建配置文件

需要自己配置systemd脚本

ubuntu

sudo apt-get install supervisor

service supervisor status|start|stop|enable|disable

常用命令

supervisord -c /etc/supervisord.conf //指定配置文件启动

supervisorctl stop programxxx  //停止某一个进程

supervisorctl start programxxx //启动某一个进程

supervisorctl restart programxxx //重启某个进程

supervisorctl status  //查看进程状态

supervisorctl stop groupworker //重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)

supervisorctl stop all //停止全部进程,注:start、restart、stop 都不会载入最新的配置文件

supervisorctl reload //载入最新配置文件,停止原有进程并按新的配置启动所有进程

supervisorctl update //根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

配置文件示例 (laravel项目为例)

#进程组名称
[program:laravel-worker-queue]
#进程名称
process_name=%(program_name)s_%(process_num)02d
#程序执行命令
command=/php-path/bin/php /www/www.youdomain.com/current/artisan queue:work redis --sleep=3 --tries=3 
#supervisor启动后自动启动
autostart=true 
#退出后自动重启
autorestart=true
#程序运行用户
user=www-data 
#supervisor启动进程数量
numprocs=5
#如果为true,则将进程的 stderr 输出发送回其 stdout 文件描述符上的 supervisord(在 UNIX shell 术语中,这相当于执行 /the/program 2>&1)
redirect_stderr=true
#日志大小
stdout_logfile_maxbytes=10MB
#日志数量
stdout_logfile_backups=20
#日志目录
stdout_logfile=/www/www.youdomain.com/current/storage/logs/worker.log