目录
  
  概述
  
  Supervisor是什么
  
  Supervisor意图
  
  Supervisor特性
  
  Supervisor组件
  
  平台需求
  
  概述
  
  项目运行需要后台运行,一般都是使用 nohup,但是nohup不能对后台进程监控和失败重启等高级功能,有木有更好的工具可以帮我们做这些事呢,通过谷哥的绑住找到了一个满意答案就是Supervisor
  
  转帖请注明出处:https://my.oschina.net/u/2342969/blog/2963930
  
  Supervisor是什么
  
  Supervisor是一个进程管理系统(其实是一个软件),它有一个可视化界面可以启动进程,查看进程状态,它允许用户监视和控制类unix操作系统上的许多进程。
  
  它与launchd、daemontools和runit等程序共享一些相同的目标。与某些程序不同,它不打算作为init的替代程序“process id 1”运行。相反,它被用于控制与项目或客户相关的过程,并且在引导时像其他程序一样启动。
  
  Supervisor意图
  
  简便
  
  rc.d脚本是流程初始化/自动启动/管理的一种很好的、最基本的形式,但是编写和维护它们可能会很麻烦。此外,rc.d脚本不能自动重启崩溃的进程,许多程序在崩溃时不能正确重启自己。Supervisor将进程作为子进程启动,并且可以配置为在崩溃时自动重启它们。它还可以自动配置为在自己的调用上启动进程。
  
  精准
  
  通常很难在UNIX上准确地获得进程的运行/停止状态。Pidfiles表现是不准确的。Supervisor以子进程的形式启动进程,因此它总是知道其子进程的真正运行/停止状态,并且可以方便地查看这些数据。
  
  托管
  
  我们不希望或不需要完整的shell访问进程运行的机器。在底层TCP端口上侦听的进程通常需要作为根用户启动和重新启动(UNIX的一个错误特性)。通常情况下,允许普通用户停止或重启这样的进程是完全可以的,但是为他们提供shell访问通常是不切实际的,而为他们提供根访问或sudo访问通常是不可能的。向他们解释为什么会存在这个问题也是困难的。如果将Supervisor作为根用户启动,就有可能允许普通用户控制此类流程,而不需要向他们解释问题的复杂性。通过从一个简单的shell或web UI发出“stop”、“start”和“restart”命令,Supervisorctl允许对机器进行非常有限的访问,基本上允许用户查看进程状态并控制受监视控制的子进程。
  
  进程组
  
  Supervisor通过进程组管理进程,进程常常需要在组中启动和停止,甚至可以按“优先顺序”启动和停止。Supervisor允许您为进程分配优先级,并允许用户通过监控管理客户端发出“start all”和“restart all”等命令,这些命令按照预先分配的优先级顺序启动进程。此外,可以将流程分组为“流程组”,并且可以作为一个单元停止和启动一组逻辑相关的流程。
  
  Supervisor特性
  
  简单

public static IServiceCollection AddIds4(this IServiceCollection @this)
2 {
3 @this
4 .AddAuthentication()
5 .AddQQConnect(www.dfgjpt.com"qq", "QQ Connect", SetQQConnectOptions)
6 .AddGithub("github", www.michenggw.com/"Github"www.mhylpt.com, SetGithubOptions);
7
8 @this
9 .AddIdentityServer(SetIdentityServerOptions)
10 .AddDeveloperSigningCredential(www.gcyL157.com)
11 .AddInMemoryIdentityResources(Resources.AllIdentityResources)
12 .AddInMemoryApiResources(Resources.AllApiResources)
13 .AddInMemoryClients(Clients.All)
14 .AddTestUsers(Users.All);
15
16 return @this;
  
  Supervisor是通过一个简单的ini风格的配置文件来配置的,很容易学习。它提供了许多进程选项,使您的工作更容易,例如重新启动失败的进程和自动日志循环。
  
  一站式
  
  Supervisor提供了一个开始、停止和监视流程的控制台。进程可以单独控制,也可以分组控制。可以通过配置Supervisor提供本地或远程命令行和web界面。
  
  高效
  
  Supervisor通过fork/exec启动它的子进程,而不是守护。当进程终止时,操作系统立即向Supervisor发出信号,这与某些解决方案不同,这些解决方案依赖于容易出错的的PID文件和定期轮询来重启失败的进程。
  
  可扩展
  
  Supervisor有一个简单的事件通知协议,用任何语言编写的程序都可以使用它来监视它,还有一个XML-RPC接口用于控制。它也可以由Python开发人员利用扩展点构建。
  
  兼容性
  
  Supervisor除了windows系统,其他系统均可以使用。它在Linux、Mac OS X、Solaris和FreeBSD上均得到了测试和支持。它完全用Python编写,所以安装不需要C编译器。
  
  可靠
  
  虽然Supervisor在今天被非常积极的开发,但是它并不是一个新的软件。Supervisor已经存在多年,并且已经在许多服务器上使用。
  
  Supervisor组件
  
  supervisord
  
  Supervisor服务部分叫做Supervisord。它负责自己调用时启动子程序,响应来自客户机的命令,重新启动崩溃或退出的子进程,记录子进程挂掉和崩溃的输出,并生成和处理与子进程生命周期中的点对应的“事件”。
  
  它使用了一个配置文件。配置文件通常位于/etc/supervision.conf中。这个配置文件是一个“Windows-INI”风格的配置文件。通过适当的文件系统权限保持该文件的安全性非常重要,因为它可能包含未加密的用户名和密码。
  
  通俗点讲就是Supervisor的处理器
  
  supervisorctl
  
  supervisorctl是Supervisor命令行客户端.它提供了一个类shell的接口,用于管理Supervisor提供的特性.用户可以连接到不同的监控器进程(一次一个),获取受控子进程的状态,停止和启动的子进程,以及监控器的运行进程列表。
  
  通俗点讲就是Supervisor的命令工具
  
  Web Server
  
  如果配置中启动了这个模块,就可以通过浏览器访问具有与supervisorctl类似功能的web用户界面。在配置文件的[inet_http_server]部分开启,访问服务器URL(例如http://localhost:9001/),通过web接口查看和控制进程状态。
  
  通俗点讲就是一个可视化界面,可以在界面操作进程
  
  XML-RPC Interface
  
  web UI基于XML-RPC接口服务,该接口可用于询问和控制Supervisor及其运行的程序
  
  平台需求
  
  Supervisor经过测试,可以在Linux (Ubuntu 9.10)、Mac OS X(10.4/10.5/10.6)、Solaris (10 for Intel)和FreeBSD 6.1上运行。它在大多数UNIX系统上都可以很好地工作。但是他不能在windows平台下运行
  
  Supervisor可以使用Python 2.4或更高版本,但不能在Python 3的任何版本下工作。

进程管理利器Supervisor--入门简介的更多相关文章

  1. 进程管理工具Supervisor(一)简介与使用

    Supervisor是用Python开发的一套client/server架构的进程管理程序,能做到开机启动,以daemon进程的方式运行程序,并可以监控进程状态等等. linux进程管理方式有传统的r ...

  2. 进程管理利器supervisor

    supervisor安装 方法一 1:用管理员安装python-setuptools suse zypper in python-setuptools centos yum install pytho ...

  3. Linux守护进程管理利器——Supervisor

    Supervisor是采用 Python(2.4+) 开发的,它是一个允许用户管理 基于 Unix 系统进程的 Client/Server 系统,提供了大量功能来实现对进程的管理.安装: yum in ...

  4. 进程管理工具supervisor

    1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...

  5. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  6. Supervisor (进程管理利器) 使用说明 - 运维笔记

    一.Supervisor简单介绍supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程,或者可以说是多个程序.supervisor与laun ...

  7. Linux进程管理工具——supervisor

    介绍 Supervisord是用Python实现的一款非常实用的进程管理工具 安装 这里用源码 supervisor-.tar.gz .tar.gz cd supervisor- sudo pytho ...

  8. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  9. linux 使用进程管理工具 supervisor

    1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具 老版本的supervisor需要运行在python2环境,如果需要使用supervisor管理python3 ...

随机推荐

  1. ReactiveCocoa实战: 模仿 "花瓣",重写 LeanCloud Rest Api的iOS REST Client.

    这一次我们将要讨论的是移动开发中比较重要的一环--网络请求的封装.鉴于个人经验有限,本文将在一定程度上参考 基于AFNetworking2.0和ReactiveCocoa2.1的iOS REST Cl ...

  2. webpack4基本配置

    1.npm init      生成package.json文件 2.npm install webpack webpack-cil --save-dev 安装webpack和webpack-cli ...

  3. 430. Flatten a Multilevel Doubly Linked List

    /* // Definition for a Node. class Node { public: int val = NULL; Node* prev = NULL; Node* next = NU ...

  4. YCM的使用

    YCM大概用来做3件事: (1)自动补全 (2)检查语法 (3)跳转到函数定义 然后涉及到两个关键的文件.vimrc 和 .ycm_extra_conf.py 首先需要正确的配置,在.vimrc中写入 ...

  5. 解决VM-tools安装后,仍然无法与虚拟机复制

    重新安装,不同是运行这个: vmware-install.real.pl 并执行 sudo apt-get install open-vm-tools-desktop 重启

  6. SpringMVC文件上传——bean的配置【org.springframework.web.multipart.commons.CommonsMultipartResolver】

    一.简介 Spring MVC支持一个通用的多路上传解析器CommonsMultipartResolver,在Spring的配置文件中对CommonsMultipartResolver Bean进行配 ...

  7. 顺序链表的C风格实现

    //头文件 #ifndef _SEQLIST_H_ #define _SEQLIST_H_ //定义数据类型 typedef void SeqList; typedef void SeqListNod ...

  8. 适合pc端的移动拖拽,分享一下。

    h5新加的特性拖拽事件,但是只适合PC端哦.不多说了上代码 <!DOCTYPE html> <html> <head> <title></titl ...

  9. IDA 对 so 的动态调试

    将IDAPro根目录下dbgsrv 目录下的android_server(模拟器用android_x86_server,这里还是用真机好点)文件push 到安卓设备(比如/data/local/tmp ...

  10. 剑指Offer - 九度1523 - 从上往下打印二叉树

    剑指Offer - 九度1523 - 从上往下打印二叉树2013-12-01 00:35 题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 输入: 输入可能包含多个测试样例,输入以E ...