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

    一、介绍

    Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程.
    相关的组件

    supervisor:要安装的软件的名称。
    supervisord:装好supervisor软件后,supervisord用于启动supervisor服务。
    supervisorctl:用于管理supervisor配置文件中program。
    

    二、安装部署

    1、 centos7下安装

    # yum install epel-release
    # yum install -y supervisor
    # systemctl enable supervisord # 开机自启动
    # systemctl start supervisord # 启动supervisord服务 
    也可以使用/usr/bin/supervisord -c /etc/supervisord.conf &  启动,通常使用在docker里面启动改进程
    
    # systemctl status supervisord # 查看supervisord服务状态
    # ps -ef|grep supervisord # 查看是否存在supervisord进程
    

    2、修改配置

    默认的配置文件在 /etc/supervisord.conf
    修改配置如下:

    [supervisord] # 守护进程读取的配置
    logfile=/data/supervisord/supervisord.log  # 守护进程的日志存放位置
    logfile_maxbytes=50MB  #日志文件大小
    logfile_backups=10 # 日志文件个数
    loglevel=info #日志文件等级
    pidfile=/data/supervisord/supervisord.pid
    nodaemon=false # 使用以守护进程启动,配置为false,表示以守护进程启动
    
    [program:task1]  # 守护进程具体管理的子线程,可以有多个
    command=/usr/local/jdk/bin/java -cp task.jar:lib/* com.rs.task.server.task1  #子线程具体执行的命令
    directory=/opt/data1 # 执行子进程的目录,也就是进入到该目录执行上面的命令
    startretries=10 # 失败时采取的重启次数
    autorestart=true #是否开启自动重启
    startsecs=3 # 子进程启动多少秒以后表示运行
    redirect_stderr=true
    stdout_logfile=/data/taskserver.log
    

    三、控制被守护的应用

    修改/etc/supervisord.conf文件,添加如下配置

    [supervisorctl]
    serverurl=unix:///var/run/supervisor/supervisor.sock
    
    [unix_http_server]
    file=/var/run/supervisor/supervisor.sock
    
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    

    查看所有应用supervisorctl status
    stop某个应用supervisorctl stop xxx, xxx为上一步现实的应用名即[program:demo]这里是demo
    restart某个应用supervisorctl restart xxx
    修改某个应用的配置后(supervisorctl update 会重新启动这个应用)

    或者可以进入到supervisorctl 控制台

    # supervisorctl -c /etc/supervisord.conf
    supervisor> help    # 查看常用的命令
    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
    supervisor> status
    ManageServer                     RUNNING   pid 1142, uptime 0:01:19
    TaskServer                       RUNNING   pid 1143, uptime 0:01:19
    cron_properties                  RUNNING   pid 1144, uptime 0:01:19
    supervisor> version
    3.4.0
    

    参考借鉴:
    https://www.cnblogs.com/huashengxue/p/9578636.html
    https://blog.csdn.net/donggege214/article/details/80264811
    https://blog.csdn.net/ningyuxuan123/article/details/81903711
    https://blog.csdn.net/perfecttech/article/details/96136811

  • 相关阅读:
    Android系统剪切板
    java中tcp小样例
    Linux
    图书馆管理系统——模板建立
    学好英语的七个规则(上)
    spring中abstract bean的使用方法
    EularProject 36:2进制和10进制回文数
    java封装AES加密算法
    王艾辉:止跌信号频出 意味着什么?
    Storm集群组件和编程模型
  • 原文地址:https://www.cnblogs.com/yjt1993/p/13273283.html
Copyright © 2011-2022 走看看