zoukankan      html  css  js  c++  java
  • 利用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
  • 相关阅读:
    python 函数参数
    文件操作总结
    时间模块总结
    代码编程规范
    javascript 学习
    Spring-扫描注解原理,注解自动扫描原理分析
    String中的intern方法
    Zookeeper服务注册与发现原理浅析
    一篇文章了解RPC框架原理
    如何设计一个秒杀系统
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10900713.html
Copyright © 2011-2022 走看看