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、自然也就没法控制啦

  

centos上安装supervisor来管理dotnetcore等应用程序的更多相关文章

  1. linux(centos)下安装supervisor进程管理工具

    在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示: 上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署, ...

  2. NoSql1 在Linux(CentOS)上安装memcached及使用

    前言:       今天是初五,生活基本要从过年的节奏中回归到正常的生活了,所以想想也该想想与工作有关的事情了.我之前在工作中会经常使用memcached和redis,但是自己一直没有时间系统的好好看 ...

  3. 在CentOS上安装rabbitmq-server

    ***在 CentOS 6.4上安装python*** 注意啊,自己手动安装python2.7.5,不要动系统上面其他的版本 1,先安装GCC,用如下命令yum install gcc gcc-c++ ...

  4. 在Centos上安装RabbitMQ流程(转)

    在Centos上安装RabbitMQ流程------------------------ 1. 需求 由于项目中要用到消息队列,经过ActiveMQ与RabbitMQ的比较,最终选择了RabbbitM ...

  5. Linux系统入门学习:在CentOS上安装phpMyAdmin

    问题:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库.在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAd ...

  6. 在 CentOS 上安装和配置 OpenNebula

    转自:http://www.aikaiyuan.com/4889.html 我们提到的云计算一般有三种类型:软件即服务(Software as a Service, SaaS),平台即服务(Platf ...

  7. CentOS上安装GitBlit服务

    简单介绍 在上一篇文章中,已经简单的介绍了如何在CentOS的服务器上搭建git服务器.但是这种方式实现的服务器功能比较弱,操作起来也比较繁琐.在网上搜索了一圈,感觉Gitblit比较符合我的需求.接 ...

  8. centos上安装python环境

    1.安装python-pip ​ 首先安装epel扩展源: ​ yum -y install epel-release ​ 更新完成之后,安装pip: ​ yum -y install python- ...

  9. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

随机推荐

  1. 【Python】python扩展

    当python的基本功能无法满足要求.或者是为了保密源码(.py).遇到性能瓶颈时,我们经常要扩展python,扩展语言能够是C/C++.Java.C#等. 为python创建扩展须要三个基本的步骤: ...

  2. Django打造大型企业官网(四)

    4.3.轮播图布局和样式 templates/news/index.html <div class="news-wrapper"> <div class=&quo ...

  3. 安装ubuntu后启动黑屏

    我是在windows7上的一个空暇盘上安装ubuntu 14.安装后重新启动没有ubuntu的启动项,然后用easybcd生成启动项,重新启动发现果然有,可是选择之后黑屏. 百度半天无果.后来无意发现 ...

  4. 介绍Android拍照,录像开发的相关东东

    Android下相机有自带的照片功能,可是作为开发人员,我们需要更为深层次的知道,怎么用,以及相关原理,这里我就这方面的学习,写一下心得,供博友参考. 第一种:调用系统自带相机界面. 这时我们在布局文 ...

  5. 【Unity3D】Unity3D SkinnedMeshRenderer换装系统

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/6505561.html 一.换装原理 游戏角色换装分为以下几步: 1.替换蒙皮网格 2.刷新骨骼 3.替换材质 上 ...

  6. mysql —— 利用Navicat 导出和导入数据库

    Navicat for MySql 导出数据库方法: 打开Navicat for MySql,在要导出的数据库上面右击鼠标,点击“转储SQL 文件”→“数据和结构”. 找到合适的路径,点击“保存”. ...

  7. 深入理解JMM(Java内存模型) --(二)重排序

    [转载自并发编程网 – ifeve.com 原文链接:http://ifeve.com/tag/jmm/] 数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存 ...

  8. c# 生成 xml 文件

    方法一: using System; using System.Xml; using System.IO; using System.Text; public class ReadWriteXml { ...

  9. 3-1 todolist功能开发

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. bzoj 1029: [JSOI2007]建筑抢修【贪心+堆】

    第一想法是按照结束时间贪心,但是这样有反例 所以先按照t贪心,能选则选,把选的楼的持续时间放进大根堆里,当当前的楼不能选的时候如果当前的持续时间比大根堆里最大的要小,就用这个替换最大,这样总数不变但是 ...