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

原文: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

原文地址:https://www.cnblogs.com/lonelyxmas/p/10288971.html

时间: 2024-12-21 00:33:23

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

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

原文:将asp.net core2.0项目部署在IIS上运行 前言: ?与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控制台应用程序中,并通过dotnet运行时命令调用.它并没有被加载到IIS工作进程中,但是IIS却加载了名为AspNetCoreModule的本地Module,这个Module用于执行外部的控制台程序. ?部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块,如果没有的话,点击

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

linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关知识,需要的朋友可以参考下 关键字:linux.守护进程 创建子进程,父进程退出 这是编写守护进程的第一步.由于守护进程是脱离控制终端的,因此,完成第一步后就会在Shell终端里造成一程序已经运行完毕的假象.之后的所有工作都在子进程中完成,而用户在Shell终端里则可以执行其他命令,从而在形式上做到

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

随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP.NET Core 是新一代的 ASP.NET,第一次出现时的代号为 ASP.NET vNext,后来命名为ASP.NET 5,随着它的完善与成熟,最终命名为 ASP.NET Core,这表明它已不是 ASP.NET 的升级,而是一个重新设计的Web开发框架.而它一个非常重要的变化就是它不再依赖于I

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core WebApi项目,使用默认的Values控制器,这里使用Visual Studio 2019创建一个ASP.NET Core 3.1d的WebApi项目. 创建新项目的时候选项ASP.NET Core Web应用程序,如下图所示: 配置新项目界面界面设置项目名称和位置,如下图所示: 选择.Net Cor

ASP.NET Core教程:ASP.NET Core程序部署到Linux

一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例进行讲解. 二.安装运行时环境 1.在线安装 我们只是在Linux系统上面部署应用程序,所以只需要安装ASP.NET Core Runtime即可.在安装.NET之前,我们需要先注册Microsoft密钥和源,在终端里面执行下面的命令: sudo rpm -Uvh https://packages.

第一章 部署虚拟环境linux系统 2019年7月15日星期一 第二课

第一章 部署虚拟环境linux系统 2019年7月15日星期一  第二课 1.1 准备的工具 VmawareWorkSation 12.0   虚拟机 RadHatEnterpriseLinux[RHEL]7.0   红帽操作系统 1.2 安装配置VM虚拟机 略…… 1.3 安装配置VM虚拟机 VM配置要开启BIOS里的inte-TV  虚拟化服务 1.4 配置root用户密码 红帽RHCSA考前辅导视频 1.5 Rpm红帽软件包 (1)源代码安装弊端:1.难度高,安装困难. 2.需要自己解决依

asp.net core2.0 登录效果实现

基础 新建项目的,新建登录页的基本操作略,主要说下在实现登录过程碰到的问题,废话不多说,让我们进入主题. 验证码 asp.net.core2.0本身有提供system.drawing命名空间,但是没有Image,Graphics,Bitmap等对象的实现,只能引用第三方的dll来操作. 1.在vs的项目里打开nuget包管理器,搜索关键字"drawing",显示很多可用的包,选择安装"zkweb.system.drawing" 包 2.实现随机字符串的图片显示代码

Linux系统编程@进程通信(一)

进程间通信概述 需要进程通信的原因: 数据传输 资源共享 通知事件 进程控制 Linux进程间通信(IPC)发展由来 Unix进程间通信 基于System V进程间通信(System V:UNIX系统的一个分支) POSIX进程间通信(POSIX:可移植操作系统接口,为了提高UNIX环境下应用程序的可移植性.很多其他系统也支持POSIX标准(如:DEC OpenVMS和Windows).) 现在Linux使用的进程间通信方式包括: 管道(pipe).有名管道(FIFO) 信号(signal) 消

Linux系统裁剪笔记之二insmod

Linux系统裁剪笔记之二 1.什么裁剪? 本篇文章的主要目的是让笔者和读者更深的认识Linux系统的运作方式,大致内容就是把Linux拆开自己一个个组件来组装,然后完成一个微型的Linux系统.下面,让我们来实现吧..写的不好的地方请指教. 2.原理 大家都知道,操作系统的启动流程是(主要是Linux):POST->BIOS->MBR-kernel-->initrd-->sbin/init, POST,BIOS都不是我们管的,所以这里我们从MBR开始,Linux的系统引导先主要是