zoukankan      html  css  js  c++  java
  • Supervisor的使用

    supervisor

    1.yum安装supervisor

    yum install -y epel-release
    yum install -y supervisor
    

    安装后会生成一个主配置文件/etc/supervisor.conf,与一个应用配置文件目录/etc/supervisor.d/

    2.添加启用脚本,启动服务,添加开机启动

    vim /usr/lib/systemd/system/supervisor.service

    [Unit]
    Description=Process Monitoring and Control Daemon
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
    ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
    ExecReload=/usr/bin/supervisorctl $OPTIONS reload
    KillMode=process
    Restart=on-failure
    RestartSec=42s
    
    [Install]
    WantedBy=multi-user.target
    

    重新载入systemctl daemon-reload
    启动服务systemctl start suoervisor
    添加开机启动systemctl enable supervisor

    3.管理应用的配置

    /etc/supervisor.d/下新建配置文件XXX.ini

    [program:XXX]
    directory = /root/lazy ; 程序的启动目录
    command = /usr/local/jdk1.8.0_181/bin/java -jar XXX.jar ; 启动命令,与命令行启动的命令是一样的
    autostart = true     ; 在 supervisord 启动的时候也自动启动
    startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
    autorestart = true   ; 程序异常退出后自动重启
    startretries = 3     ; 启动失败自动重试次数,默认是 3
    user = root          ; 用哪个用户启动
    redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
    stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
    stdout_logfile_backups = 20     ; stdout 日志文件备份数
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stdout_logfile = /etc/supervisord.d/log/confd.log  ;日志统一放在log目录下
    ; 可以通过 environment 来添加需要的环境变量
    ; environment=JAVA_HOME=/usr/local/jdk1.8.0_181/bin ;配置了不生效原因未知所以上面启动用绝对路径
    

    环境变量问题,程序只能读取系统环境变量,但是手动配置java环境变量不生效,原因未知

    4.supervisorctl常用命令

    supervisorctl status # 查看进程状态
    supervisorctl start XXX # 启动某个进程XXX,XXX为[program:XXX]里配置的值 (stop,restart) 注:start、restart、stop 都不会载入最新的配置文件
    supervisorctl stop all # 停止全部进程
    supervisorctl reload # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
    supervisorctl update # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
    
    

    5.supervisord常用命令

    supervisord -h # 帮助
    supervisord -t # 测试配置文件
    supervisord -c /etc/supervisord.conf # 命令启动应用
    

    6.supervisor控制台

    /etc/supervisord.conf中修改[inet_http_server]的参数,具体如下:

    [inet_http_server]         ; inet (TCP) server disabled by default
    port=*:9001        ; ip_address:port specifier, *:port for all iface
    username=root             ; default is no username (open server)
    password=xxxx               ; default is no password (open server)
    

    修改后重启supervisor进程systemctl restart supervisor,在浏览器访问 http://<host-ip>:9001。记得开防火墙哦

    https://blog.csdn.net/huwh_/article/details/80497790

  • 相关阅读:
    ios学习笔记——UIScrollView
    ios设计模式——单例模式
    ios设计模式——生成器模式
    ios学习笔记——UITableView
    ios 第3天
    ios 第2天
    ios入门第一天
    ios 运行时特征,动态改变控件字体大小
    ios 修改导航栏返回按钮的图片
    ios 在工程中使用字体
  • 原文地址:https://www.cnblogs.com/lazy-sang/p/13891031.html
Copyright © 2011-2022 走看看