• debian 安装 supervisor


    官方网址

    http://supervisord.org/

    安装

    apt-get update
    apt-get install supervisor
    

    主配置文件supervisord.conf

    默认apt安装的主配置文件,位置是/etc/supervisor/supervisord.conf
    默认个人自定义的子进程配置放到 /etc/supervisor/conf.d/下方
    配置文件的默认查找顺序
    supervisord -c /etc/supervisor/supervisord.conf 如果不指定 -c 参数,会通过如下顺序来搜索配置文件 */
    $PWD/supervisord.conf
    $PWD/etc/supervisord.conf
    /etc/supervisord.conf
    /etc/supervisor/supervisord.conf

    cp /etc/supervisor/supervisord.conf /etc/supervisor/supervisord.conf.bak
    cat << "EOF" > /etc/supervisor/supervisord.conf
    [unix_http_server]
    file=/var/run/supervisor.sock   ; (the path to the socket file)
    chmod=0700                       ; sockef file mode (default 0700)
    [supervisord]
    logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
    pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    [supervisorctl]
    serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
    
    ; The [include] section can just contain the "files" setting.  This
    ; setting can list multiple files (separated by whitespace or
    ; newlines).  It can also contain wildcards.  The filenames are
    ; interpreted as relative to this file.  Included files *cannot*
    ; include files themselves.
    
    [include]
    files = /etc/supervisor/conf.d/*.conf
    
    ;username 和 password 是后面 web ui 或者 http://172.21.6.89:9001/ 进行管理时要用的
    ;还有命令行操作时加了密码要先登录进去在交互界面里面输入命令 /usr/bin/supervisorctl -u admin -p admin    没密码时 可以 /usr/bin/supervisorctl -reload
    [inet_http_server]         ; inet (TCP) server disabled by default
    port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
    ;//启动之后就可以浏览器打开了
    ;http://127.0.0.1:9001
    username=admin              ; (default is no username (open server))
    password=admin               ; (default is no password (open server))
    
    EOF
    

    测试案例

    添加一个小程序

    cat << EOF > /usr/local/test.sh
    #!/bin/bash
    while true
    do
        echo $(date +%H:%M:%S) >> /tmp/echo_time.log
        sleep 1
    done
    EOF
    

    添加自定义配置test.conf 到 /etc/supervisor/conf.d/下方

    cat << "EOF" > /etc/supervisor/conf.d/test.conf
    [program:test]
    directory = /usr/local ; 程序的启动目录
    command =  sh test.sh ; 启动命令,可以看出与手动在命令行启动的命令是一样的
    autostart = true ; 在 supervisord 启动的时候也自动启动
    startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
    autorestart = true ; 程序异常退出后自动重启
    startretries = 3 ; 启动失败自动重试次数,默认是 3
    user = root ; 用哪个用户启动
    redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
    stdout_logfile_maxbytes = 200MB ; stdout 日志文件大小,默认 50MB
    stdout_logfile_backups = 10 ; stdout日志文件备份数
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录>(supervisord 会自动创建日志文件)
    stdout_logfile = /tmp/echo_stdout.log
    EOF
    

    新增配置生效

    请使用 更新配置的命令

    supervisorctl update
    

    命令

    //关闭supervisord
    supervisorctl shutdown 
    
    //验证安装是否成功
    supervisorctl --help
    
    //更新配置
    supervisorctl update
    
    //重新启动配置中的所有程序
    supervisorctl reload 
    

    使用普通用户启动

    让非 root 用户可以使用 supervisor
    通过修改 root账号安装的目录文件属性,让非root账号可以操作
    关闭 supervisord
    supervisorctl shutdown
    修改权限
    chown -R your-user:your-user /etc/supervisor
    chown -R your-user:your-user /etc/supervisor/conf.d
    chown -R your-user:your-user /var/log/supervisor
    
  • 相关阅读:
    @ResponseBody和@RequestBoby的作用
    项目Alpha冲刺Day9
    项目Alpha冲刺Day8
    项目Alpha冲刺Day7
    设计模式第三次作业
    项目Alpha冲刺Day6
    树莓派历程笔记
    项目Alpha冲刺Day5
    django获取ip与数据重复性判定
    在django模板中添加jquery
  • 原文地址:https://www.cnblogs.com/faberbeta/p/16397764.html
Copyright © 2020-2023  润新知