2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行
我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了。
我们一直踩在巨人的肩膀上前行!!!
这篇博客中介绍一个新的名词“Supervisor”,翻译过来应该是超级用户的意思,在电脑里面这个超级用户可是非常NB的,它什么都管,那么就说一下我们要用到的这个“超级用户”,Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台的守护进程,并实时监控进程的状态,一旦发现进程死掉了,立马就去重启它。这不正是我们想要的吗。写到这儿了突然发现了个问题,那就再扯会儿蛋。以下为扯淡内容,与本篇博客的内容无关。。。
微软真的发生了太大的变化,做.net的这几年真的可谓饱受争议,在我们这个国家的大环境下,就编程语言来说,Java无一例外是占了上风的,我们不说C/C++,就拿Java来说,身边不少的人,有好多都是从C#转了Java,导致现在.net行业不景气,记得之前跟同学吃饭,碰到一个他的同学,说了几句话,问了下做什么的,同学说也是搞编程的,我真的是问都不用问,毋庸置疑肯定是Java的,真的是太多了,从各大培训机构陆续的停止.Net培训,比如传智播客(不过听说杨中科老师从传智播客出去后,自己成立了公司,自己搞了,这真的是大情怀啊!)。我们可以去看各大网站的编程语言排名,C#一直都是4,5,6名,Java好像一直处于顶峰,虽说同样都是面向对象的编程语言,哈哈问个问题‘什么是面向对象?“,答”世间万物皆为对象“!很大程度上C#并不像是一门语言,而是一个工具,所以普遍认为C#的入门要比Java简单的多,当初为什么选择了.net方向,其实一开始选专业的时候,真的对计算机编程是一窍不通,更不懂选什么方向了,但因为专业搭配的问题,不得不选择了这个方向。。。又扯远了!当然.net目前发展到今天,跟微软的高层是有紧密的联系的,微软的上一代CEO是仇视Linux的,也经常听同事说,自从纳德拉担任CEO后,微软的股票真的是一路飙升,可以看下面这张图:
为什么说到了这里,因为真的是切身感受到微软确实发生了不少变化,今天我们将我们的.net程序放到了Linux上,Mac上,今天我们使用C#做移动跨平台开发,而在以前鲍尔默称”Linux是癌症“,纳德拉却说”微软爱Linux“,所以说微软的高层决定了今天的微软,CoreOS的首席执行官说:”我从未想到自己会出现在微软的发布会上,而且还能听到微软的CEO说他们爱Linux。“dotnet core的推出让我们这些热爱.net的人又看到了新的希望,在2016年的腾讯代码报告中,C#和Asp.Net 的排名也有所提升
当然还有网易,将自己的手游的后端使用.net core替代了Java,这些都推动了.net的发展,微软也渐渐的走向了开源化,在ipad版的office,收购Xamarin,拥抱Linux,Visual Studio Code的发布,不久的Sql Server For Linux,dotnet core 2.0的正式发布,我们相信微软会越来越好,.net也会越来越好,再配一张"川普"的推文(虽然是P的)
Make .NET Great Again. 扯淡结束。。。
回到我们的正题,首先安装Supervisor,命令为:
yum install python-setuptools
easy_install supervisor
可以看到第一条命令执行时,提示已经安装了python工具并且是最新版本,下一条命令应该也是成功执行了,下面继续配置Supervisor,命令为:
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改配置文件supervisord.conf,真的是很讨厌在命令行中去修改内容,我还是直接找到源文件,使用WinSCP有好处是可以直接找到源文件然后修改,不过建议大家先下载到本地备份,万一改乱套了比较麻烦,尽量不要在服务器直接改,修改如下:将最后一行修改为:
注意一定要去掉前面的分号,保存完成。注意这个*.conf也可以改成*.ini。下面配置对ASP.Net Core应用的守护
创建一个DotNetCoreWebDemo01.conf文件,配置如下:
[program:DotNetCoreWebDemo01]
command=dotnet DotNetCoreWebDemo01.dll ; 运行程序的命令
directory=/root/DotNetCoreWebDemo01/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/DotNetCoreWebDemo01.err.log ; 错误日志文;件
stdout_logfile=/var/log/DotNetCoreWebDemo01.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
每一句后面都加了注释,根据自己的实际情况配置即可,本地创建完成后,我们将他拷贝到/etc/supervisor/conf.d文件夹下,就是我们刚刚在上面配置的files 的值的文件夹下,如果不存在conf.d文件夹,自己手动创建即可,还有如果你配置的是*.ini,那么就将配置文件扩展名改为.ini,对应即可,下面运行命令
supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep DotNetCoreWebDemo01
存在dotnet DotNetCoreWebDemo01.dll进程就代表已经启动了,如果出现下面的情况:
则需要将刚才的配置进行reload,重新生效,命令为 supervisorctl reload,然后再运行 ps -ef | grep DotNetCoreWebDemo01,我们现在再运行下Web,没问题成功了,下面我们把这个守护神设为开机启动,以后就不需要担心Web关掉了。真的是要被这些命令折磨吐了!!!坚持!!!!
创建supervisord.service文件,文件配置如下:
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
然后保存,放到文件目录
/usr/lib/systemd/system下
执行命令 :
systemctl enable supervisord
设为开机启动,执行命令 :
systemctl is-enabled supervisord 查看是否已经为开机启动
以上全部配置完成了,自己可以重启下服务器然后验证下。
至此如何将dotnet core Web部署到Linux上就梳理完了,真是一点点的写,一点点的测试,一点点的查,还是有点吃力的,以后遇到什么问题可以直接来这里找了。美好的周末又结束了,周一又要开始了。。。
扫描二维码关注我的公众号,共同学习,共同进步!
2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行的更多相关文章
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
[C#]使用 C# 代码实现拓扑排序 目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...
- CentOS中配置NFS服务
1.服务器端安装rpcbind.nfs-utils.nfs-server包 yum install nfs-utils -y 2.修改服务器端配置文件,添加需要共享的文件夹. vim /etc/exp ...
- OSGi 系列(七)之服务的监听、跟踪、声明等
OSGi 系列(七)之服务的监听.跟踪.声明等 1. OSGi 服务的事件监听 和 bundle 的事件监听类似,服务的事件监听是在服务注册.注销,属性被修改的时候,OSGi 框架会发出各种不同的事件 ...
- CentOS&.NET Core初试-4-安装守护服务(Supervisor)
系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) Supervisor是什么? Supervisor 是 ...
- CentOS中配置Kafka集群
环境:三台虚拟机Host0,Host1,Host2 Host0:192.168.10.2 Host1: 192.168.10.3 Host2: 192.168.10.4 在三台虚拟机上配置zook ...
- 守护服务Supervisor的安装和使用
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- 2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序
Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节".提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛 ...
- Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port
Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看默认配置 [root@node101.yinzh ...
- [03]使用 VS2019 创建 ASP.NET Core Web 程序
使用 VS2019 创建 ASP.NET Core Web 程序 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自<从零开 ...
随机推荐
- JS基础知识简介
使用js的三种方式 1.HTML标签内嵌js <button onclick="javascript:alert(真点啊)">有本事点我</button> ...
- 001 unique string
以后坚持每一个星期都写记到算法题,不论简单还是难,纯熟娱乐! 描写叙述: 实现一个算法来推断一个字符串中的字符是否唯一(即没有反复).不能使用额外的数据结构. (即仅仅使用主要的数据结构) 代码: # ...
- hive 安装警告 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist
解决方法: 在0.10 0.11或者之后的HIVE版本 hive.metastore.local 属性不再使用. 在配置文件里面: <property> <name>hi ...
- Ubuntu Server 16.04安装xfce4图形界面远程控制
1.首先连接上你的服务器,然后安装vncserver,命令如下 apt-get install vnc4server 2.安装图形界面 apt-get install xfce4如果安装不上,就 ap ...
- 我的第四个Python小程序
简单的登陆程序: # Author: fansik # Description: Simply log in to small programs # Date: 2017/9/29 _username ...
- 玩转pandas
一.pandas概述 pandas :pannel data analysis(面板数据分析).pandas是基于numpy构建的,为时间序列分析提供了很好的支持.pandas中有两个主要的数据结构, ...
- django路由系统之反向生成url
from niubin.service import v1 from django.urls import reverse from django.shortcuts import HttpRespo ...
- iOS UIScrollView 滚动到当前展示的视图居中展示
需求展示: 测试效果1 first uiscrollView 宽度 为屏幕宽度 滚动步长 为 scroll 宽度的1/3 分析: 这个是最普通版 无法使每一次滚动的结果子视图居中展示, WA ...
- c# 接口(interface)与接口应用
using System; using System.Collections.Generic; using System.Linq; using System.Text; //接口(interface ...
- Linux doxygen的安装与使用
1.安装doxygen 目前最新版本的的doxygen是doxygen1.8.13,安装包可以在官网上下载,网址是:http://www.stack.nl/~dimitri/doxygen/downl ...