• 利用Supervisor 管理自己部署的应用程序


    首先,在centos7下安装supervisor

    yum install python-setuptools
    
    easy_install supervisor

    然后新建配置文件

    #新建supervisor文件夹
    mkdir /etc/supervisor #生成默认的配置文件 echo_supervisord_conf > /etc/supervisor/supervisord.conf

    成功之后查看文件

    然后编辑这个配置文件,配置成读取conf.d文件夹的配置文件,这样就不用写在一个文件里面

    同时将[inet_http_server]下的注释去掉,修改为

    [inet_http_server]       
    port=192.168.125.128:9001        
    username=admin             
    password=123456 

    这个是启动web界面管理,上面的Ip和端口可以换。

    接下来就是编写执行命令了,在/etc/supervisor下新建conf.d文件夹,

    在里面新建一个conf文件,命令内容如下(注意前后不能有空格)

    [program:WebAPI]
    command=/bin/bash -c "export ASPNETCORE_ENVIRONMENT=Development&&dotnet WebAPI.dll"
    directory=/home/wwwroot/strategyApi/
    autorestart=true
    stderr_logfile=/var/log/WebAPI.err.log
    stdout_logfile=/var/log/WebAPI.out.log
    environment=ASPNETCORE_ENVIRONMENT=Production
    user=root
    stopsignal=INT
    autostart=true
    autorestart=true
    startsecs=3

    其中第二行是执行多行命令设置启动环境,因为swagger页面需要配置在Development环境下才能打开,

    日志记录建议分项目建文件夹,方便查找。我这里只是测试,就随便了。

    然后启动

    supervisord -c /etc/supervisor/supervisord.conf   或  supervisord

    如果服务已经启动,使用以下命令重启

    supervisorctl reload

    查看自己的程序是否运行成功

    ps -ef | grep dotnet

    我这里是添加了三个服务。

    然后进入界面

    ps:如果打不开需要将配置的端口打开

    firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)

    最后,记录一些常用的命令:

    启动supervisord】

    supervisord -c /etc/supervisord.conf   或  supervisord 
    

    【停止supervisord】

    supervisorctl shutdown
    

    【重新加载配置文件】

    supervisorctl reload
    

    【进程管理】

    1. 启动supervisord管理的所有进程
      supervisorctl start all
    
    1. 停止supervisord管理的所有进程
      supervisorctl stop all
    
    1. 启动supervisord管理的某一个特定进程
      supervisorctl start program-name // program-name为[program:xx]中的xx
    
    1. 停止supervisord管理的某一个特定进程
      supervisorctl stop program-name  // program-name为[program:xx]中的xx
    
    1. 重启所有进程或所有进程
      supervisorctl restart all // 重启所有supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx
    
    1. 查看supervisord当前管理的所有进程的状态
      supervisorctl status

    参考至:https://www.jianshu.com/p/805977544d7f
  • 相关阅读:
    PCI配置空间与IO空间与内存空间
    python读配置文件,根据配置文件内容改写二进制文件
    python参数的传递机制
    python复制、移动文件到指定文件夹
    python解析配置文件
    python struct用法
    Python 字符串前面加u,r,b的含义
    shell算数运算符
    三、shell -break、continue、exit、return
    shell-逻辑判断
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10900713.html
Copyright © 2020-2023  润新知