PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > 编程杂谈 > 正文

    supervisor安装及配置

    作者:admin来源:网络浏览:时间:2020-09-30 11:57:21我要评论
    导读:Supervisor 是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动...
    Supervisor 是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec 的方式把这些被管理的进程当作 supervisor 的子进程来启动,这样只要在 supervisor 的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。

    安装 

    1. apt -y install supervisor 
    2.  
    3. yum -y install supervisor 


    配置

    1. [unix_http_server] 
    2.  
    3. file=/var/run/supervisor.sock 
    4.  
    5. chmod=0700 
    6.  
    7. [inet_http_server] 
    8.  
    9. port=0.0.0.0:7020 
    10.  
    11. username=root 
    12.  
    13. password=xxxxxx 
    14.  
    15. [supervisord] 
    16.  
    17. logfile=/var/log/supervisor/supervisord.log 
    18.  
    19. pidfile=/var/run/supervisord.pid 
    20.  
    21. childlogdir=/var/log/supervisor 
    22.  
    23. [rpcinterface:supervisor] 
    24.  
    25. supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 
    26.  
    27. [supervisorctl] 
    28.  
    29. serverurl=unix:///var/run/supervisor.sock 
    30.  
    31. [include
    32.  
    33. files = /etc/supervisor/conf.d/*.conf 

    管理服务
     

    需要前台运行交于 supervisor 控制,原理是 fork 一个守护进程进行监控
     
    program 标识,比如 php-fpm,可以在后台 supervisorctl 中进行 start/stop/restart 操作
     
    command 命令,需要加上 sleep 1,防止进程还没退出 supervisor 就去检测,还挺好用
     
    管理 php-fpm
     
    [program:php-fpm]
     
    command=bash -c "sleep 1 && sudo /usr/local/php7.4/sbin/php-fpm"
     
    process_name=%(program_name)s
     
    autostart=true
     
    autorestart=true
     
    startretries=5
     
    exitcodes=0,2,70
     
    stopsignal=QUIT
     
    stopwaitsecs=2
     
    stdout_logfile=/var/log/supervisor/php-fpm.log
     
    ps -ef|grep php-fpm
     
    root 23034 22175 0 23:37 ? 00:00:00 sudo /usr/local/php7.4/sbin/php-fpm
     
    root 23043 23034 0 23:37 ? 00:00:00 php-fpm: master process (/usr/local/php7.4/etc/php-fpm.conf)
     
    www-data 23044 23043 0 23:37 ? 00:00:00 php-fpm: pool www
     
    www-data 23045 23043 0 23:37 ? 00:00:00 php-fpm: pool www
     
    管理 nginx
     
    [program:nginx]
     
    command=bash -c "sleep 1 && sudo /usr/local/nginx/sbin/nginx -g 'daemon off;'"
     
    process_name=%(program_name)s
     
    autostart=true
     
    autorestart=true
     
    startretries=5
     
    exitcodes=0,2,70
     
    stopsignal=INT
     
    stopwaitsecs=2
     
    stdout_logfile=/var/log/supervisor/nginx.log
     
    ps -ef|grep nginx
     
    root 22613 22175 0 23:35 ? 00:00:00 sudo /usr/local/nginx/sbin/nginx -g daemon off;
     
    root 22616 22613 0 23:35 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -g daemon off;
     
    www-data 22617 22616 0 23:35 ? 00:00:00 nginx: worker process
     
    www-data 22618 22616 0 23:35 ? 00:00:00 nginx: worker process
     
    www-data 22619 22616 0 23:35 ? 00:00:00 nginx: worker process
     
    www-data 22620 22616 0 23:35 ? 00:00:00 nginx: worker process
     
    supervisorctl
     
     
    supervisor> status
     
    nginx RUNNING pid 22613, uptime 0:03:40
     
    php-fpm RUNNING pid 23034, uptime 0:01:43
     
    supervisor> ?
     
    default commands (type help <topic>):
     
    =====================================
     
    add exit open reload restart start tail
     
    avail fg pid remove shutdown status update
     
    clear maintail quit reread signal stop version
     

     

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-74-6298-1.html