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

 

最新文章

  1. MQTT协议学习笔记
  2. log4j:WARN Please initialize the log4j system properly.解决
  3. IntelliJ IDEA快捷键和常用设置
  4. virutalbox虚拟机硬盘扩容
  5. windows下 破解 Sublime Text3 和汉化
  6. C#图片处理高级应用(裁剪,缩放,清晰度,水印)
  7. asp.net微信开发第三篇----自定义会话管理
  8. Webfrom 生成流水号 组合查询 Repeater中单选与复选控件的使用 JS实战应用
  9. Swift -> RunTime(动态性) 问题 浅析
  10. hdu 3345 War Chess
  11. 面向UI编程:ui.js 1.1 使用观察者模式完成组件之间数据流转,彻底分离组件之间的耦合,完成组件的高内聚
  12. 解决初次使用webpack+antd-mobile时css不生效的问题
  13. 控件之combox
  14. [Leetcode easy]存些水题34、20、700
  15. jquery 在线视频
  16. SAS LOGISTIC 逻辑回归中加(EVENT='1')和不加(EVENT='1')区别
  17. 利用U盘启动制作GHO镜像
  18. 2D Tookit简单教程
  19. 解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集
  20. Java重排序

热门文章

  1. jquery1.8 在IE8 下面报错:对象不支持此属性或方法 return b.getAttribute("id")===a
  2. 通过Git Gui Here上传本地项目到GitHub上
  3. light oj 1184 Marriage Media
  4. C++ enum用法小技巧
  5. 安装Wamp后 Apache无法启动的解决方法
  6. 个人Vue-1.0学习笔记
  7. Powerdesigner+PostgreSQL
  8. QTP10破解方法及mgn-mqt82.exe下载
  9. 理解rem实现响应式布局原理及js动态计算rem
  10. java里程碑之泛型--类型通配符