zoukankan      html  css  js  c++  java
  • supervisor使用

    一切测试在centos7下

    安装

    yum install -y supervisor

    配置

    /etc/supervisor.conf

    unix_http_server用于让ctl连接,可以给ctl连接设定用户和密码

    可以开启一个inet_http_server,用于web管理,不过使用ctl更安全一些。

    ; Sample supervisor config file.
    
    [unix_http_server]
    file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
    ;chmod=0700                 ; sockef file mode (default 0700)
    chown=svisor:nogroup       ; socket file uid:gid owner
    username=user              ; (default is no username (open server))
    password=123               ; (default is no password (open server))
    
    [inet_http_server]         ; inet (TCP) server disabled by default
    port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
    username=user              ; (default is no username (open server))
    password=123               ; (default is no password (open server))
    

      

    启动

    supervisord -c /etc/supervisor.conf

    创建进程管理文件

    在主配置文件里有include参数,可以把按应用分的ini配置文件包含进去

    ; [program:xx]是被管理的进程配置参数,xx是进程的名称
    [program:xx]
    command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run  ; 程序启动命令
    autostart=true       ; 在supervisord启动的时候也自动启动
    startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
    autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    startretries=3       ; 启动失败自动重试次数,默认是3
    user=tomcat          ; 用哪个用户启动进程,默认是root
    priority=999         ; 进程启动优先级,默认999,值小的优先启动
    redirect_stderr=true ; 把stderr重定向到stdout,默认false
    stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
    stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
    stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程
    

      

    加载新配置

    添加新的ini后,需要让配置生效

    使用supervisorctl工具

    supervisor> reload
    Really restart the remote supervisord process y/N? n
    supervisor> update
    #reload是重启supervisord
    #update是更新配置
    

      

    开机启动

    使用systemctl服务,让supervisord开机自启动,它会自动去使用/etc/supervisor.conf。这样,所有被supervisor管理的ini,都会被托管。

    只要在设置里autostart=true,这样就会一起被启动。

    一个django的实例

    由于使用venv,所以command里要使用对应环境的uwsgi命令

    [program:mofang_wsgi]
    directory=/data/mofangsvr/
    command=/data/mofangsvr/venv/bin/uwsgi --ini mofang.ini
    stdout_logfile=/data/mofangsvr/stdout.out
    autostart=true
    autorestart=true
    startsecs=5
    priority=1
    stopasgroup=true
    killasgroup=true
    

      

    要注意的是,uwsgi的ini文件里,守护进程必须注释掉,suipervisord不支持守护进程启动

    # 以守护进程方式提供服, 输出信息将会打印到log中
    #daemonize = wsgi.log
    

      

    一个nginx的实例

    要特意关掉守护进程

    [program:mofang_nginx]
    directory=/data/nginx/
    command=/data/nginx/sbin/nginx  -g 'daemon off;'
    stdout_logfile=/data/nginx/std.out
    autostart=true
    autorestart=true
    startsecs=5
    priority=1
    stopasgroup=true
    killasgroup=true
    

      

  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/jabbok/p/11269997.html
Copyright © 2011-2022 走看看