zoukankan      html  css  js  c++  java
  • supervisor 的安装与使用

    学习视频:
    https://www.bilibili.com/video/BV1Vi4y147Fm?from=search&seid=8875783979034550201

    更多说明:
    https://xugaoxiang.com/2019/12/04/supervisor/
    https://www.cnblogs.com/Hai--D/p/5820718.html

    安装
    sudo yum install -y supervisor

    开机启动
    sudo systemctl enable supervisord

    启动
    sudo systemctl start supervisord

    查看启动
    ps -ef | grep supervisor

    2、 配置Supervisor

    a.创建文件夹和配置文件

    mkdir /etc/supervisor
    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    b.修改/etc/supervisor/supervisord.conf文件内容

    在文件结尾[include]节点处

    ;files = relative/directory/*.ini

    改为files = conf.d/*.conf

    c.执行supervisorctl reload 命令使配置文件生效。

    d.在/etc/supervisor/下创建conf.d文件夹,及ProjectName.conf(以项目名称命名的)

    e.打开ProjectName.conf文件,添加内容如下:

    [program: ProjectName]
    command=dotnet ProjectName.dll ; 运行程序的命令
    directory=/root/Publishing/PublishOutput/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    autostart=true ; 是否自动启动
    stderr_logfile=/var/log/ProjectName.err.log ; 错误日志文件
    stdout_logfile=/var/log/ProjectName.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    startsecs=1 ; 自动重启间隔
    

    以我的项目为例

    [program:power]
    process_name=power
    user=root
    command=nohup /home/work/go/src/linkbook.com/power >> access.log 2>&1 & ; 运行程序的命令    
    directory=/home/work/go/src/linkbook.com/power ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启 
    autostart=true ; 是否自动启动
    stderr_logfile=/var/log/power_err.log ; 错误日志文件      
    stdout_logfile=/var/log/power_out.log ; 输出日志文件
    user=root ; 进程执行的用户身份
    stopsignal=INT
    startsecs=1 ; 自动重启间隔
    
    

    保存并退出

    3、 运行supervisord,查看是否生效,执行以下命令:

    supervisord -c /etc/supervisor/supervisord.conf
    ps -ef | grep ProjectName

    4:web界面操作

    需要在supervisor的配置文件里添加[inet_http_server]选项组:之后可以通过http://10.211.55.11:9001来访问控制子线程的管理。

    [inet_http_server]
    port=10.211.55.11:9001
    username=user
    password=123

    效果:

    5:子进程管理(supervisorctl)

    1. 查看所有子进程的状态:

    supervisorctl status

    blog RUNNING pid 2395, uptime 0:08:41
    zhoujy RUNNING pid 2396, uptime 0:08:41

    2)关闭、开启指定的子进程:

    supervisorctl stop zhoujy

    zhoujy: stopped

    supervisorctl start zhoujy

    zhoujy: started

    3)关闭、开启所有的子进程:

    supervisorctl stop all

    blog: stopped
    zhoujy: stopped

    supervisorctl start all

    blog: started
    zhoujy: started

    4):其他参数:supervisor开启后子进程自动开启(autostart=true)和子进程退出后自动启动(autorestart=ture)

    更多的参数可以看官方文档和supervisor(一)基础篇的说明。
    总结:

      我们需要的功能在上面介绍的supervisor的基本功能中已经实现,supervisor还有其他的一些功能:如进程组、web页面管理子进程、监控子线程情况等等,更多的信息可以去官网上查看。
  • 相关阅读:
    VC常用代码
    richedit
    vc++ 2005 发布程序
    管道应用之捕获控制台程序信息
    黑客基础知识编程(转)
    Get All IE Info from win32 api
    vc 界面编程常用方法(http://blog.emuch.net/244485/spacelistblogitemtypeid2708.html)
    使用ADO调用存储过程
    在C#中如何实现文件夹的复制(转)
    C语言开发病毒程序(转)
  • 原文地址:https://www.cnblogs.com/haima/p/13035510.html
Copyright © 2011-2022 走看看