- 参考https://www.centos.bz/2018/10/supervisor%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/
- ps://blog.csdn.net/huwh_/article/details/80497790
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