• centos上安装supervisor来管理dotnetcore等应用程序


    supervisor 介绍:

      这是一款用python编写的进程管理工具,可以守护他管理的所有进程,防止异常退出,以及提供一个可视化的web界面来手动管理,打开关闭重启各种应用,界面如下:

    关于在centos上安装supervisor:

    1、通过yum安装:

    yum install supervisor
    

    2、配置supervisor:

    我们去用vim编辑/etc/supervisord.conf这个文件,可以看到有很多选项

    第一个节点是UnixSocket,是unix进程间通信的,默认开启,后面本机的supervisorctl可以通过他来连接到supervisord服务器

    第二个节点是对外的Http服务,是对外开放的,主要给远程的supervisorctl或者客户浏览器访问,当然本机supervisorctl也可以使用http的方式来连接

    第三个节点就是核心,supervisord服务,这个服务就是真正管理进程的worker,里面每个选项注释都有解释

    第四个节点就是本机的客户端,supervisorctl,图中使用的是unixsocket来和supervisord通信的,我们可以使用一些命令来控制supervisord,比如supervisorctl reload//重新加载supervisord,也就是重启一把了,supervisorctl update 也就是更新配置信息,supervisorctl start {进程名称} 启动,supervisorctl stop {进程名称} 关闭,等等

    首先,我们把supervisor服务启动起来:

    supervisord -c /etc/supervisord.conf
    

    这样就使用这个配置文件启动了supervisor服务,

    这个时候我们可以通过9001端口访问下这个页面,就能看到一个没有任务列表的第一张图的页面

    第一步完成,接下来我们跑个程序在里面

    首先我们安装一把dotnetcore,

    https://dotnet.github.io/ 这里有介绍,

    然后我们创建一个core'程序,放到/service/helloword目录下

    在dotnet编译一把,生成了一个一个dll文件

    进到目录里 dotnet WebApplication1.dll

    运行成功。然后我们打开supervisord.conf 继续配置,如图所示

    主要有两个配置,一个directory和command,directory就是首先cd 这个directory,command就是执行这个命令,还有个environment,.net里面一般生产环境,开发环境,测试环境啥的就可以在这里配置

    然后保存文件

    reload一下supervisord

    在打开浏览器,是不是发现多了一个running状态的helloworld程序?

    在这里可以重启,关闭,tail-f查看实时日志信息

    现在我们测试一下如果程序异常关闭之后会怎样,我们打开日志,然后到控制台下kill掉这个进程,会发现日志显示

    是supervisord自动将其打开了,所以supervisord也是能够好好守护这个进程的,

    因而我们可以考虑将.netcore程序部署到linux服务器上,并且使用supervisord来管理一把,从而也就相当于在windows上的服务了,而且还能实时监控运行状态,日志之类的,还能自由开关也是方便。

    这个工具自然不仅仅是管理dotnetcore程序,其他很多程序都是可以管理的,但是有个需要注意的是被管理的程序必须已非deamon的方式运行,否则他没法准确捕捉到这个进程Id,而且捕捉到的进程id会在启动deamon的时候关闭掉

    从而导致1、启动的时候认为启动成功了,但是完事了进程又退出了,他就认为异常退出,然后不断重新启动程序,2、自然也就没法控制啦

      

  • 相关阅读:
    高级软件工程第八次作业LLS战队团队作业五
    Alpha阶段个人总结
    高级软件工程第七次作业:LLS战队Alpha敏捷冲刺7
    高级软件工程第七次作业:LLS战队Alpha敏捷冲刺6
    数独游戏界面功能
    数独棋盘
    调研《构建之法》指导下的全国高校的历届软工实践作品、全国互联网+竞赛、物联网竞赛、华为杯研究生作品赛、全国大学生服务外包赛等各类全国性大学生信息化相关的竞赛平台的历届作品
    高级软件工程课程的实践项目的自我目标
    Beta冲刺汇总博客
    团队作业9——第二次项目冲刺2(Beta阶段)
  • 原文地址:https://www.cnblogs.com/dingsblog/p/7040680.html
Copyright © 2020-2023  润新知