原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)

续上一篇文章:asp.net core2.0 部署centos7/linux系统 --安装部署(一),遗留的问题而来,对程序添加守护进程,使网站可以持续化的运行起来。

 

1、介绍supervisor

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS7,Python2.7版本环境下,介绍Supervisor的安装与配置步聚:

 

1、安装Python包管理工具(easy_install),安装supervisor

    命令:yum install python-setuptools

              easy_install supervisor

    

    说明:supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序

 

2、配置supervisor

    新建配置目录命令:mkdir /etc/supervisor

     生成supervisor的初始化配置文件 :echo_supervisord_conf > /etc/supervisor/supervisord.conf

    修改配置文件:vi supervisord.conf,如图:

   

    

    取消注释并修改文件并保存

 

3、配置管理进程

    说明:进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中

    a.创建 /etc/supervisor/conf.d目录, 用于存放进程管理的配置文件 

    b.修改/etc/supervisor/supervisord.conf中的include参数,将/etc/supervisor/conf.d目录添加到include中

    

    应用程序1的配置:比如我们应用程序名称为:WebApplication1

    命令 vi WebApplication1.conf

    输入代码:

    [program:WebApplication1]

    command=dotnet WebApplication1.dll

    directory=/root/aspnetcoreapi

    autorestart=true

    stderr_logfile=/var/log/WebApplication1.err.log

    stdout_logfile=/var/log/WebApplication1.out.log

    environment=ASPNETCORE_ENVIRONMENT=Production

    user=root

    stopsignal=INT

 

    保存并退出!!!

 

4、启动Supervisor服务

    命令:supervisord -c /etc/supervisor/supervisord.conf

    查看状态:supervisorctl status

    

    

    检查到有一个应用程序在运行中,说明正常

 

5、进程的控制

     说明:supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动、停止、重启。运行supervisorctl命令,不加参数,会进入supervisor客户端的交互终端,并会列出当前所管理的所有进程。

    

    上图中的WebApplication1就是我们在配置文件中[program:WebApplication1]指定的名字。

 

6、bash终端控制

    启动:supervisord -c /etc/supervisor/supervisord.conf

    supervisorctl status

    supervisorctl stop WebApplication1

    supervisorctl start WebApplication1

    supervisorctl restartWebApplication1

    supervisorctl reload

    supervisorctl update

 

7、Web管理界面

    说明:出于安全考虑,默认配置是没有开启web管理界面,需要修改supervisord.conf配置文件打开http访权限,将下面的配置修改:

    

    此配置说明我的管理界面是开启的哦,9001端口,我们来浏览一下地址http://192.168.0.171:9001/

    

     

 

8、开机启动Supervisor服务

  • 首先进入/lib/systemd/system目录,并创建supervisor.service文件,输入代码如下:

 

        [Unit]

        Description=supervisor

        After=network.target

 

        [Service]

        Type=forking

        ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

        ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

        ExecReload=/usr/bin/supervisorctl $OPTIONS reload

        KillMode=process

        Restart=on-failure

        RestartSec=42s

 

        [Install]

 

        WantedBy=multi-user.target

 

保存并退出!!!

 

  • 修改文件权限

            命令:chmod 766 supervisor.service

 

  • 设置开机启动

            systemctl enable supervisor.service

            systemctl daemon-reload

     

以上Supervisor开机服务启动已经好了!!!

 

交流qq群:18362376

asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)的更多相关文章

  1. asp.net core2.1 部署centos7/linux系统 -- 安装部署(一)

    原文:asp.net core2.1 部署centos7/linux系统 -- 安装部署(一) 1.安装dotnet sdk(添加产品秘钥与yum源) 添加yum源:sudo rpm -Uvh htt ...

  2. Linux系统守护进程详解ntsysv 可以关掉那些服务

    acpid, haldaemon, messagebus, klogd,network, syslogd  以上几个服务必须开启!其他的分析如下: 1.NetworkManager,NetworkMa ...

  3. .net core linux的守护进程 supervisor

    这个介绍的很全面,对初学者来说可以有更好的认识: https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

  4. 将asp.net core2.0项目部署在IIS上运行

    原文:将asp.net core2.0项目部署在IIS上运行 前言:  与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...

  5. linux 创建守护进程的相关知识

    linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关 ...

  6. 在阿里云Windows Server 上部署ASP .NET CORE2.0项目

    近期使用ASP.NET Core2.0对博客进行了重写,在部署到服务器时遇到了一些问题,来记录一下留用. 配置环境 安装 .Net Framework3.5 在IIS管理器上直接开启,这里总是失败,上 ...

  7. Asp.Net Core2.0在linux下发布

    一.在linux上新建mvc项目发布 可以参考:https://segmentfault.com/a/1190000012428781 也可以看微软官方文档. 大致步骤如下: 1.在linux下安装. ...

  8. 一步一步带你做WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  9. WebApi迁移ASP.NET Core2.0

    WebApi迁移ASP.NET Core2.0 一步一步带你做WebApi迁移ASP.NET Core2.0   随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的AS ...

随机推荐

  1. [Vue + TS] Create your own Decorators in Vue with TypeScript

    We’ve used @Watch, @Inject and more decorators from vue-property-decorator. In this lesson however w ...

  2. 笔记二:JS的输出、语法、语句、字符串、条件语句、switch语句、for循环、while循环

    1.JS的输出: 注意:JS没有任何打印或者输出的函数 JS输出数据的集中方法:  1.使用window.alert()弹出警告框: 2.使用document.write()方法将内容写到HTML文档 ...

  3. vue-cli打包项目后,可以修改配置文件

    问题: 前端需要修改后台服务器地址url,写好的配置文件会在npm run build 后压缩在一起,传到运行的前端服务器上后,需要到前端打包的源码,找到url地址进行修改.如果不在打包的源码修改,则 ...

  4. Python 极简教程(九)元组 tuple

    元组(tuple)是 Python 中的一种序列.和列表类似,但是元组不可变. 也就是说元组一旦声明后,值就不能再改变.我们先来看看元组的样式: >>> t = () # 空元组 & ...

  5. 使用Spring Security3的四种方法概述

    使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过, ...

  6. 解决Keystore was tampered with, or password was incorrect

    使用签名文件keystore查看生成的数字签名中报错解决 Keystore was tampered with, or password was incorrect 这是由于android规定自己定义 ...

  7. HDU 2577 How to Type (线性dp)

    How to Type Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  8. c#下halcon配置

    1.在halcon中写入算子,实现函数过程 比如: read_image(Image,'D:/MyFile/halcon/数字识别/1.jpg') decompose3(Image, ImageR, ...

  9. Haproxy 为 mysql 做负载均衡

    .tar.gz cd haproxy- uname -r vim /etc/haproxy.cfg global #日志 log 127.0.0.1 local0 maxconn chroot /tm ...

  10. 微信小程序常见的UI框架/组件库总结

    想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小程序也渐渐更新,其中不乏一些优秀好用的框架/组件库. 1:WeUI 小程序–使用教程 h ...