Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

接触到Supervisor,是因为将AspNet Core项目部署到CentOS时,执行dotnet XXX.dll后,项目是可以正常运行起来,但是Shell窗口关闭后项目就停了,后来就看到需要配置守护服务

1.安装Supervisor

  1. yum install -y epel-release

  安装完成后,执行supervisord --version 会显示版本

2.设置Supervisor开机启动

  1. systemctl enable supervisord
  2. systemctl start supervisord

  不是root用户的话,命令前面记着加上sudo

3.创建配置文件

配置文件的路径为:/etc/supervisord.conf,执行 cat /etc/supervisord.conf,可以看到配置文件的指定目录为:

所以我们进到这个路径下创建配置文件

执行命令 vi webcore.ini会创建webcore.ini文件,然后输入下面的内容:

  1. [program:webcore]
  2. command=/usr/bin/dotnet WebCore.dll ; 输入执行命令,这里表示 dotnet WebCore.dll
  3. directory=/home/www/XCJS-Test ; 应用程序根目
  4. autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它
  5. autorestart=true ; 是否自动重启,当执行 dotnet WebCore.dll 启动失败时,会重复的自动重启
  6. logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小
  7. logfile_backups=10 ; 日志备份个数
  8. loglevel=info ; 记录日志级别
  9. stderr_logfile=/data/logs/webcore/webcore.err.log ; 指定标准错误输出日志文件
  10. stdout_logfile=/data/logs/webcore/webcore.out.log ; 指定标准输出日志文件
  11. environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet WebCore.dll 命令>的时候传入到 .NET Core 应用程序中
  12. user=root ;启动服务的用户
  13. stopsignal=INT
  14. redirect_stderr=true

  4.创建日志文件目录

  1. mkdir -p /data/logs/webcore

  配置完成后,记着重启一下supervisor

  1. systemctl restart supervisord

总结

安装Supervisor有很多种方法,这里暂时先只介绍了一种,后续会补充其它方法。

项目在运行的状态下,如果要更新一些东西,替换完后需要重启(systemctl restart supervisord)一下守护服务才会生效。

参考:

http://www.supervisord.org/introduction.html

https://www.cnblogs.com/viter/p/10441409.html

守护服务Supervisor的安装和使用的更多相关文章

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

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

  2. VMware Workstation CentOS7 Linux 学习之路(4)--守护服务(Supervisor)

    目前存在三个问题 问题1:ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生 ...

  3. 程序守护服务 Supervisor

    一.什么是Supervisor? Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.它是通过fork ...

  4. 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行

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

  5. Supervisor的安装以及使用

    1.supervisor的介绍 Supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统,通过配置可以实 ...

  6. Linux Supervisor的安装与使用入门

    在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.由于在linux中,每个系统与用户进行交流的界 ...

  7. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  8. Linux Supervisor的安装与使用入门---SuSE

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

  9. Linux Supervisor的安装与使用入门---Ubuntun

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

随机推荐

  1. [drf]model设置

    参考 //# 给model添加虚拟字段 class CeleryExampleResult(models.Model): task_id = models.BigIntegerField(defaul ...

  2. ylbtech-SQL-W3School-高级:SQL NOT NULL 约束

    ylbtech-SQL-W3School-高级:SQL NOT NULL 约束 1.返回顶部 1. SQL NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值. NOT NULL ...

  3. HTTP的响应协议

    响应行介绍,响应状态码 1XX: 客户端请求服务器,但是请求未完成,服务器什么事也没干 2XX: 表示响应成功,代表性的状态码就是200 3XX: 请求重定向,代表性的状态码302 4XX: 客户端发 ...

  4. SpringBoot: 14.异常处理方式4(使用SimpleMappingExceptionResolver处理异常)(转)

    修改异常处理方法3中的全局异常处理Controller即可 package bjsxt.exception; import org.springframework.context.annotation ...

  5. Spark2.4源码阅读1-Shuffle机制概述

    本文参考: a. https://www.jianshu.com/p/c46bfaa5dd15 1. shuffle及历史简介 shuffle,即"洗牌",所有采用map-redu ...

  6. 微信小程序 左右分类滚动列表

    今天需求个类似得到app分类的功能,效果如图: 左右分别滚动,互不干扰,先把简单的布局和样式搭好. <view class="page"> <view class ...

  7. Java工程师学习指南第5部分:Java网络编程与NIO

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java网络编程相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧. 深度解读 Tomcat 中的 NIO 模型 [Java基本功]浅 ...

  8. github pages + hexo 搭建 blog 遇到的问题

    一. ERROR Deployer not found: git $ hexo d ERROR Deployer not found: git npm install --save hexo-depl ...

  9. linux中环境变量设置

    Linux下环境变量设置的三种方法: 如想将一个路径加入到$PATH中,可以像下面这样做: 只对当前的shell 起作用的环境变量 1.控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用 ...

  10. docker教程(1) - 快速使用

    docker 笔记(1) --docker安装.获取镜像.启动容器.删除容器 一.安装 Docker 官方文档 根据官方文档整理简单流程 从Docker Hub下载mac包 运行磁盘镜像,将Docke ...