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
  • 相关阅读:
    《C# to IL》第一章 IL入门
    multiple users to one ec2 instance setup
    Route53 health check与 Cloudwatch alarm 没法绑定
    rsync aws ec2 pem
    通过jvm 查看死锁
    wait, notify 使用清晰讲解
    for aws associate exam
    docker 容器不能联网
    本地运行aws lambda credential 配置 (missing credential config error)
    Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
  • 原文地址:https://www.cnblogs.com/FateHuli/p/10900713.html
Copyright © 2011-2022 走看看