我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了。

  我们一直踩在巨人的肩膀上前行!!!

  这篇博客中介绍一个新的名词“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程序的运行的更多相关文章

  1. [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果

    [C#]使用 C# 代码实现拓扑排序   目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...

  2. CentOS中配置NFS服务

    1.服务器端安装rpcbind.nfs-utils.nfs-server包 yum install nfs-utils -y 2.修改服务器端配置文件,添加需要共享的文件夹. vim /etc/exp ...

  3. OSGi 系列(七)之服务的监听、跟踪、声明等

    OSGi 系列(七)之服务的监听.跟踪.声明等 1. OSGi 服务的事件监听 和 bundle 的事件监听类似,服务的事件监听是在服务注册.注销,属性被修改的时候,OSGi 框架会发出各种不同的事件 ...

  4. CentOS&.NET Core初试-4-安装守护服务(Supervisor)

    系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) Supervisor是什么? Supervisor 是 ...

  5. CentOS中配置Kafka集群

    环境:三台虚拟机Host0,Host1,Host2 Host0:192.168.10.2 Host1:  192.168.10.3 Host2:  192.168.10.4 在三台虚拟机上配置zook ...

  6. 守护服务Supervisor的安装和使用

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  7. 2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序

    Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节".提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛 ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port

    Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看默认配置 [root@node101.yinzh ...

  9. [03]使用 VS2019 创建 ASP.NET Core Web 程序

    使用 VS2019 创建 ASP.NET Core Web 程序 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自<从零开 ...

随机推荐

  1. CAP theorem

    https://en.wikipedia.org/wiki/CAP_theorem

  2. Hadoop “Name node is in safe mode” 错误解决方法

    Hadoop 解除 "Name node is in safe mode" 运行hadoop程序时,有时候会报以下错误:org.apache.hadoop.dfs.SafeMode ...

  3. SpringBoot连接PostgreSQL

    这个 org.postgresql.jdbc.PgConnection.createClob() 方法尚未被实作 application.properties spring.datasource.pl ...

  4. postgrSQL 错误ERROR: permission denied

    赋权限: GRANT ALL PRIVILEGES ON TABLE 表名 TO 用户;

  5. jqprint 打印网页 jQuery print plugin

    ref://jQuery print plugin <!DOCTYPE html> <html lang="en"> <script src=&quo ...

  6. linux环回文件

    我们通常在设备上(比如磁盘分区)上创建文件系统,这些存储设备能够以设备文件的形式来使用,如/dev/device_name.为了使用存储设备上的文件系统,我们将其挂载到挂载点. 环回文件系统是指那些在 ...

  7. How do I resolve the CodeSign error: CSSMERR_TP_NOT_TRUSTED?

    How do I resolve the CodeSign error: CSSMERR_TP_NOT_TRUSTED? The Xcode build error titled "CSSM ...

  8. Web安全相关资料

    Asp.net安全架构: http://www.cnblogs.com/luminji/category/381486.html

  9. active scaffold

    模板文件路径:/.rvm/gems/ruby-2.2.3/gems/active_scaffold-3.5.3/app/views/active_scaffold_overrides

  10. position:absolute width

    position:absolute; left:0px; right:0px; top:0px; bottom:0px; 设置布满整个父范围,设置了absolute的元素可以通过以上4个属性来展开面, ...