• 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
    

      

      

      

  • 相关阅读:
    关于给Tomcat设置maxPostSize的问题
    完美激活PyCharm教程
    Tomcat +Nginx+Redis实现session共享
    python 上传多文件
    吸引注意力的动画
    Create React App 安装less 报错
    2020软件工程作业01
    yum用法
    rpm包的管理
    共享依赖库的误移或误删解决办法
  • 原文地址:https://www.cnblogs.com/lucktomato/p/16709268.html
Copyright © 2020-2023  润新知