supervisor使用

使用场景
1. 自己写的程序,没有启动脚本
2. 程序运行后,得用nohup进行后台运行以及日志输出
3. 一台服务器里面有多个程序,而且有优先级

上述场景下对应的好处:
1. 帮助你拥有启动和关闭的操作接口
2. 日志除了stdout显示之外,还可以输出到指定文件
3. 几个程序运行在一个节点里面,可以进行优先级调整

安装:

yum install epel-release -y
yum install supervisor -y

supervisor的常用命令:

supervisorctl status           //查看所有进程的状态
supervisorctl stop msyql       //停止msyql
supervisorctl start msyql      //启动msyql
supervisorctl restart msyql     //重启msyql
supervisorctl  reload          //载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
supervisorctl update           //根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启; 如果修改了
supervisorctl shutdown         //停止supervisor进程


supervisord -c supervisor.conf                                通过配置文件启动supervisor
supervisorctl -c supervisor.conf status                       查看supervisor的状态
supervisorctl -c supervisor.conf reload                       重新载入配置文件  更新后可以选择重新载入
supervisorctl -c supervisor.conf start [all] |  [appname]     启动指定/所有 supervisor管理的程序进程
supervisorctl -c supervisor.conf stop [all] | [appname]       关闭指定/所有 supervisor管理的程序进程
supervisorctl -c /etc/supervisord.conf shutdown               停止supervisor进程

  

supervisor管理mysql

[program:mysql]
command=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/mydata --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/mydata/localhost.localdomain.err --pid-file=/mydata/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
user=mysql

supervisor管理nginx

command=/usr/local/nginx/sbin/nginx -g "daemon off;"                ;启动服务的command
autostart = true                ;在supervisord启动的时候这个服务也自动启动
startsecs = 5                   ;启动5s后没有异常退出,就认为正常启动了
autorestart = true              ;程序异常退出后自动重启
startretries = 3                ;启动失败几次之后就比启动了
user = root                     ;以那个用户的身份启动这个服务
redirect_stderr = true          ;把stderr重定向到stdout,默认false
stdout_logfile_maxbytes = 20MB  ;stdout日志的大小
stdout_logfile_backups = 20     ;stdout日志保留多少份
stdout_logfile = /var/log/supervisor/nginx.log ;日志文件存放的位置

supervisor管理php

[program:php-fpm]
command=/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf --pid /usr/local/php/var/run/php-fpm.pid
autostart=true
user=root
autorestart=true
exitcodes=0,2,70
stopsignal=QUIT
stopwaitsecs=2
startretries=5
redirect_stderr=true
stdout_logfile=/var/log/supervisor/php-fpm.log

需要注意使用supervisor监护进程时,被监护的进程不能是守护进程。php需要修改/usr/local/php/etc/php-fpm.conf配置daemonize = no

  

  

  

 

posted @ 2022-09-19 22:02  lucky_tomato  阅读(254)  评论(0编辑  收藏  举报