美文网首页
Supervisord安装和配置

Supervisord安装和配置

作者: 还是那个没头脑 | 来源:发表于2021-08-19 16:47 被阅读0次

    安装

    推荐使用 yum 安装(easy_install安装有坑):

    yum install epel-release
    yum install -y supervisor
    

    默认配置文件:/etc/supervisord.conf
    进程管理配置文件放到:/etc/supervisord.d/目录下即可

    配置文件

    编辑配置文件
    参考地址

    注:
    运行supervisord服务的时候,需要指定supervisor配置文件,如果没有显示指定,默认在以下目录查找:

    $CWD/supervisord.conf
    $CWD/etc/supervisord.conf
    /etc/supervisord.conf
    /etc/supervisor/supervisord.conf (since Supervisor 3.3.0)
    ../etc/supervisord.conf (Relative to the executable)
    ../supervisord.conf (Relative to the executable)
    

    $CWD表示运行supervisord程序的目录。

    编写/etc/supervisor/dirini/test.ini内容:

    touch crawl_syn_server.ini

    [program:crawl-syn-server]  
    user = root
    directory = /sh
    command = /bin/bash crawl_syn_server.sh
    autostart = true
    startsecs = 10
    redirect_stderr = true
    stdout_logfile = /var/log/crawl_syn_server.log
    

    参数说明:
    program: 程序名称,名字不同于进程名子
    user=root: 用哪个用户启动进程,默认是root
    command: 执行的命令,最好写绝对路径
    directory: 执行命令的路径
    autostart: 随supervisor启动
    startsecs: 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
    autorestart: 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    startretries=60 : 启动失败自动重试次数,默认是3
    priority=999: 进程启动优先级,默认999,值小的优先启动
    redirect_stderr: 把stderr重定向到stdout,默认false
    stdout_logfile_maxbytes=50MB : stdout 日志文件大小,默认50MB
    stdout_logfile_backups = 10 : stdout 日志文件备份数,默认是10
    stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stdout_logfile=/var/log/supervisord/queue-groupon-success-listen.log
    stderr_logfile=/var/log/supervisord/queue-groupon-success-listen.log
    loglevel=info : 日志的级别
    stopasgroup=false: 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=false: 默认为false,向进程组发送kill信号,包括子进程

    Supervisord管理命令

    systemctl stop supervisord
    systemctl start supervisord  # 开启 supervisord  进程守护(一定记得开启)
    systemctl status supervisord
    systemctl reload supervisord
    systemctl restart supervisord
    

    控制进程

    1、交互终端
    supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动、停止、重启。运行supervisorctl命令,不加参数,会进入supervisor客户端的交互终端,并会列出当前所管理的所有进程。
    2、bash终端

    supervisorctl status  #查看当前运行的进程列表
    supervisorctl reload #载入所有配置文件,并按新的配置启动、管理所有进程(会重启原来已运行的程序)
    supervisorctl update  #更新新的配置到supervisord(不会重启原来已运行的程序)
    supervisorctl reread  #当一个服务由自动启动修改为手动启动时执行一下就ok
    supervisorctl start xxx  #启动某个进程
    supervisorctl stop  xxx #停止某一个进程(xxx),xxx为[program:theprogramname]里配置的值
    supervisorctl restart xxx  #重启某个进程
    supervisorctl stop all  #停止全部进程
    
    

    supervisor开机自动启动

    在目录/usr/lib/systemd/system/ 新建文件supervisord.service,并添加配置内容

    [Unit]
    Description=Process Monitoring and Control Daemon
    After=rc-local.service nss-user-lookup.target
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
    
    [Install]
    WantedBy=multi-user.target
    

    启动服务 supervisord

    systemctl enable supervisord
    

    验证一下是否为开机启动

    systemctl is-enabled supervisord
    

    注:如果启动成功后无法登陆web端,则允许9001端口通过防火墙或者关闭防火墙,关闭selinux,把supervisord.conf中的port=127.0.0.1:9001中的127.0.0.1修改成IP地址重启服务进行访问

    相关文章

      网友评论

          本文标题:Supervisord安装和配置

          本文链接:https://www.haomeiwen.com/subject/uxkabltx.html