ASP.NET Core 发布 centos7 配置守护进程
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题
安装Supervisor
1 yum install python-setuptools
2 easy_install supervisor
配置Supervisor
3 mkdir /etc/supervisor
4 echo_supervisord_conf > /etc/supervisor/supervisord.conf
5 上面语句执行完后就能在/etc/supervisor 文件夹下找到文件 supervisord.conf 如图

下面我们要将文件的结尾部分替换掉以便后面能读取到我们的配置文件
在文件的结尾找到以下
;[include];files = relative/directory/*.ini
将代码替换为如下,注意前后不能带 ;和空格符号
[include]files = conf.d/*.conf
6 进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 myproject.conf文件
具体内容如下,注意命令执行的目录要写你项目文件所在的目录,两个日志文件的名称最好也统一改一下
[program:myproject]
command=dotnet myproject.dll ; 运行程序的命令
directory=/root/mypro/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/myproject.err.log ; 错误日志文件
stdout_logfile=/var/log/myproject.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
运行supervisord并查看
7 supervisord -c /etc/supervisor/supervisord.conf
8 ps -ef | grep myproject # 这行命令是查看有关myproject的所有进程 ,【注意】myproject是上面 program:myproject 的命名 ,如果你看到如下图 ,说明运行成功,如果没有成功可以看上面配置的那个错误日志文件

9 supervisorctl reload #最后重新载入配置
下面整理一些关于 Supervisor 的命令 ,参考链接https://segmentfault.com
| 命令 | 说明 |
|---|---|
| supervisord | 初始启动Supervisord,启动、管理配置中设置的进程 |
| supervisorctl stop myproject | 停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon |
| supervisorctl start myproject | 启动某个进程 |
| supervisorctl restart myproject | 重启某个进程 |
| supervisorctl stop groupworker | 重启所有属于名为groupworker这个分组的进程(start,restart同理) |
| supervisorctl stop all | 停止全部进程,注:start、restart、stop都不会载入最新的配置文件 |
| supervisorctl reload | 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程 |
| supervisorctl update | 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。注意:显示用stop停止掉的进程,用reload或者update都不会自动重启 |
温馨提示:如果要结束当前应用程序的进程必须先结束守护进程,不然应用程序是kill不掉的,因为它已经会自动重启了,我们可以 先用命令
ps -ef | grep supervisord
查出所有守护进程相关的进程 ,然后找到对应的守护进程再用 命令
kill -9 pid # -9 为强制执行
结束进程,最后才能kill掉我的应用进程。
详细参考: http://www.cnblogs.com/zhaopei/p/netcore.html
本文永久更新地址:http://siyouku.cn/article/6861.html
asp.net core 开发框架:https://github.com/2014fighting/CodeFrame.Web.git
ASP.NET Core 发布 centos7 配置守护进程的更多相关文章
- asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...
- CentOS6/7 配置守护进程
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式. 一.相关命令 通过initctl help可以查看相关命令 [root@localhost ~ ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- ASP.NET Core 发布
ASP.NET Core 发布,asp.netcore发布 第一步:运行 dotnet restore 命令,以还原项目中指定的依赖项 dotnet restore 第二步:使用 dotnet bui ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- 使用 Visual Studio 部署 .NET Core 应用 ——ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- (11)ASP.NET Core 中的配置一(Configuration)
1.前言 ASP.NET Core在应用程序上引入Microsoft.Extensions.Configuration配置,可以支持多种方式配置,包括命令行配置.环境变量配置.文件配置.内存配置,自定 ...
- 翻译 - ASP.NET Core 基本知识 - 配置(Configuration)
翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0 ASP ...
- ASP.NET Core开发-如何配置Kestrel 网址Urls
ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置. 今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls. ...
随机推荐
- 如何把本地项目上传到Github
作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心. Github是基于git实现的代码托管,很多程序员在上面托管自己的开源项目,我使用Github ...
- IIS、nginx、apache只允许域名访问配置
您开启WAF后,攻击者只能看到WAF的IP,不能看到您的IP,攻击者通过域名访问您的网站时,就会根据规则拦截. 但是如果您的网站可以输入IP地址直接访问,是无法达到防御效果的.比如(http://42 ...
- linux利用sendmail发送邮件的方法
Linux利用sendmail发送邮件, 方法1 安装sendmail即可使用, mail -s "test" user@sohu.com bin/mail会默认使用本地sendm ...
- Java常用的框架
一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...
- Java数据持久层框架 MyBatis之背景知识三
摘录自:http://www.cnblogs.com/lcngu/p/5437281.html 对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.or ...
- 使用异步方法在XAML中绑定系统时间
最近的工作需要在程序界面上显示实时的系统时间,网上查了查大部分都是用Timer或者线程来实现. 个人非常不喜欢用Timer,感觉这东西有点太耗资源,然后思考了下觉得更好的方法应该是使用异步的方法在委托 ...
- Python 3 生成手写体数字数据集
0.引言 平时上网干啥的基本上都会接触验证码,或者在机器学习学习过程中,大家或许会接触过手写体识别/验证码识别之类问题,会用到手写体的数据集: 自己尝试写了一个生成手写体图片的python程序,在此分 ...
- JavaScript String(字符串对象)
String 对字符串的支持 String.charAt( n ) 返回字符串中的第n个字符 n 是下标 String.charCodeAt( ) 返回字符串中的第n个字符的代码 String.con ...
- spring bean中子元素lookup-method和replaced-method
lookup-method 示例: 步骤一:定义一个Car类 package org.hope.spring.bean.lookup; public class Car { private Strin ...
- 已有使用Key登陆机器,创建新账号并使用新Key登陆
背景信息:CentOS6.9机器,目前是使用Key进行登陆的,现在需要创建一个新账号并使用新生成的Key进行登陆使用 使用连接Linux工具:XShell 1.在当前机器中创建一个新用户: # use ...