supervisor 介绍:html
这是一款用python编写的进程管理工具,能够守护他管理的全部进程,防止异常退出,以及提供一个可视化的web界面来手动管理,打开关闭重启各类应用,界面以下:python
关于在centos上安装supervisor:linux
一、经过yum安装:git
1
|
yum
install
supervisor
|
二、配置supervisor:github
咱们去用vim编辑/etc/supervisord.conf这个文件,能够看到有不少选项web
第一个节点是UnixSocket,是unix进程间通讯的,默认开启,后面本机的supervisorctl能够经过他来链接到supervisord服务器vim
第二个节点是对外的Http服务,是对外开放的,主要给远程的supervisorctl或者客户浏览器访问,固然本机supervisorctl也可使用http的方式来链接windows
第三个节点就是核心,supervisord服务,这个服务就是真正管理进程的worker,里面每一个选项注释都有解释centos
第四个节点就是本机的客户端,supervisorctl,图中使用的是unixsocket来和supervisord通讯的,咱们可使用一些命令来控制supervisord,好比supervisorctl reload//从新加载supervisord,也就是重启一把了,supervisorctl update 也就是更新配置信息,supervisorctl start {进程名称} 启动,supervisorctl stop {进程名称} 关闭,等等浏览器
首先,咱们把supervisor服务启动起来:
1
|
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的时候关闭掉
从而致使一、启动的时候认为启动成功了,可是完事了进程又退出了,他就认为异常退出,而后不断从新启动程序,二、天然也就无法控制啦
本文出自https://www.cnblogs.com/dingsblog/p/7040680.html
参考
Supervisor 守护 dotnetcore 程序
https://www.aliyun.com/jiaocheng/444620.html
CentOS7下Supervisor安装与配置
https://www.jishuchi.com/archives/491.html
CentOS7使用supervisor总结
https://www.jianshu.com/p/65b5d41c2957