supervisor安装使用
- python -V
- 2.7.5
- yum install -y epel-release
- yum install -y supervisor 【安装报错时,先装上面的包】
- ps -ef | grep supervisord # 查看是否存在supervisord进程
查看版本号
- supervisord -v
- supervisord --version
- supervisord -version
- 3.4.0
服务段启动
- ps -ef | grep supervisord 查看supervisord守护进程是否存在
- kill -9 pid 如果存在先强制停掉
- cd /etc/supervisor.d/ vim test.ini 修改supervisord配置
- ps -ef | grep MQ 查看消费进程
- 停止消费程序:/usr/local/php-7.2.2/bin/php /data/www/dbserver/artisan TestMQConsumer --action=stop
- /bin/supervisord -c /etc/supervisord.conf 启动supervisord
- /bin/supervisord -c /etc/supervisord.conf 相等于 systemctl start supervisord.service
- ps -ef | grep supervisord 查看服务是否启动
- ps -ef | grep MQ 查看消费进程是否启动
查看所有进程的状态
停止全部进程
停止单个进程
- supervisorctl stop test2:test2_09
- supervisorctl stop test2:test2_08
重新启动配置中的所有程序
若是centos7:
- systemctl start supervisord.service //启动supervisor并加载默认配置文件
- systemctl enable supervisord.service //将supervisor加入开机启动项
- systemctl disable supervisord.service // 移除自动启动
常用命令介绍
- supervisorctl 是 supervisord的命令行客户端工具
- supervisorctl status:查看所有进程的状态
- supervisorctl stop es:停止es
- supervisorctl start es:启动es
- supervisorctl restart es: 重启es
- supervisorctl update :配置文件修改后可以使用该命令加载新的配置
- supervisorctl reload: 重新启动配置中的所有程序
查看消费队列进程说明:
- ps -ef | grep supervisord | grep -v grep
- ps -ef | grep artisan | grep -v grep | sort -k 9
- ps -ef | grep artisan | grep -v grep | sort -k 9 | wc -l
- ps -ef | grep Test2MQConsumer | grep -v grep
- cd /etc/supervisord.d
test01.ini
#项目名
[program:test01]
process_name=%(program_name)s_%(process_num)02d
#脚本目录
directory=/data/www/dbserver
#脚本执行命令
command=/usr/local/php-7.2.2/bin/php /data/www/dbserver/artisan TestMQConsumer --action=run
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1
#脚本运行的用户身份
user = root
#进程数
numprocs=20
#日志输出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 10
#stdout日志文件备份数
stdout_logfile_backups = 20
test02.ini
#项目名
[program:test02]
process_name=%(program_name)s_%(process_num)02d
#脚本目录
directory=/data/www/dbserver
#脚本执行命令
command=/usr/local/php-7.2.2/bin/php /data/www/dbserver/artisan Test2MQConsumer --action=run
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=1
#脚本运行的用户身份
user = root
#进程数
numprocs=10
#日志输出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 10
#stdout日志文件备份数
stdout_logfile_backups = 20