博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Supervisor全攻略(1)
阅读量:6334 次
发布时间:2019-06-22

本文共 4101 字,大约阅读时间需要 13 分钟。

  hot3.png

Supervisor是一个C/S系统,它允许用户在类UNIX系统上控制一些进程。它具有以下特性:

    1    简单

            Supervisor通过INI格式配置文件进行配置,很容易掌握,它为每个进程提供了很多配置选项,可以使你很容易的重启进程或者自动的轮转日志。

    2    统一

            Supervisor提供了一种统一的方式来start、stop、monitor你的进程, 进程可以单独控制,也可以成组的控制。你可以在本地或者远程命令行或者web接口来配置Supervisor。

    3    有效

            Supervisor通过fork/exec启动它的子进程,子进程并不是守护进程。当一个进程终止的时候,操作系统会立即给Supervisor发送一个信号,而不是像其他解决方案依赖PID文件。

    4    可扩展

            Supervisor包含一个简单的事件通知协议,因此任何程序都可以监控它,而且提供一个XML-RPC控制接口。

    5    兼容

            除了windows平台,其他平台都可运行。

Supervisor系统的组件:

    supervisord:

        服务会启动supervisord服务,它负责调用自己启动子程序,响应来自客户端的命令,重启crash或者退出的进程,记录进程的输出信息,收集事件信息。该服务的配置文件在/etc/supervisor/supervisord.conf

    supervisorctl:

        客户端的命令行工具,提供一个类shell接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序。客户端命令通过UNIX socket或者TCP来和服务通讯,服务端可以要求客户端提供身份验证之后才能进行操作([supervisorctl])。

    Web Server:

        一个小的web接口被集成进了supervisorctl,重启supervisord之后就可以访问了([inet_http_server])。    

    XML-RPC Interface:

        就像HTTP提供WEB UI一样,同时还提供了XML-RPC接口来控制supervisor和由它运行的程序。

安装:

        supervisor是python编写的,显然用easy_install、pip都可以安装,我懒,直接apt-get了,在ubuntu14.04下安装完后版本是3.0b2。

Supervisor服务的启动

        其实启动Supervisor很简单,supervisord -h看看就知道了,最简单的-c根配置文件即可:

supervisord -- run a set of applications as daemons.Usage: /usr/bin/supervisord [options]Options:-c/--configuration FILENAME -- configuration file-n/--nodaemon -- run in the foreground (same as 'nodaemon true' in config file)-h/--help -- print this usage message and exit-v/--version -- print supervisord version number and exit-u/--user USER -- run supervisord as this user (or numeric uid)-m/--umask UMASK -- use this umask for daemon subprocess (default is 022)-d/--directory DIRECTORY -- directory to chdir to when daemonized-l/--logfile FILENAME -- use FILENAME as logfile path-y/--logfile_maxbytes BYTES -- use BYTES to limit the max size of logfile-z/--logfile_backups NUM -- number of backups to keep when max bytes reached-e/--loglevel LEVEL -- use LEVEL as log level (debug,info,warn,error,critical)-j/--pidfile FILENAME -- write a pid file for the daemon process to FILENAME-i/--identifier STR -- identifier used for this instance of supervisord-q/--childlogdir DIRECTORY -- the log directory for child process logs-k/--nocleanup --  prevent the process from performing cleanup (removal of                   old automatic child log files) at startup.-a/--minfds NUM -- the minimum number of file descriptors for start success-t/--strip_ansi -- strip ansi escape codes from process output--minprocs NUM  -- the minimum number of processes available for start success--profile_options OPTIONS -- run supervisord under profiler and output                             results based on OPTIONS, which  is a comma-sep'd                             list of 'cumulative', 'calls', and/or 'callers',                             e.g. 'cumulative,callers')

        不过既然我这懒人是用apt-get安装的,那安装包的规范必然符合debian系的风格了,直接service supervisor start即可启动,且慢,我们还没配置supervisor的配置文件呢,启动了也没什么效果。我们后面详解配置文件的配置。

supervisorctl客户端的使用

        supervisorctl有两种模式,一种是交互模式,一种是命令行模式。在命令行输入supervisorctl直接回车,即可进入交互模式。

supervisorctl -- control applications run by supervisord from the cmd line.Usage: /usr/bin/supervisorctl [options] [action [arguments]]Options:-c/--configuration -- configuration file path (default /etc/supervisor.conf)-h/--help -- print usage message and exit-i/--interactive -- start an interactive shell after executing commands-s/--serverurl URL -- URL on which supervisord server is listening     (default "http://localhost:9001").  -u/--username -- username to use for authentication with server-p/--password -- password to use for authentication with server-r/--history-file -- keep a readline history (if readline is available)action [arguments] -- see belowActions are commands like "tail" or "stop".  If -i is specified or no action isspecified on the command line, a "shell" interpreting actions typedinteractively is started.  Use the action "help" to find out about availableactions.

Supervisor的开机自启动

        如果你是pip或者easy_install安装的,开机服务自启动还真是个麻烦事,不过官方已经给出一些rc.d脚本示例了,在上,不过由于我是apt-get安装的,显然这个开机自启动是不用担心的,用debian的update-rc.d即可搞定。

Supervisor的进程安全

        既然是用Supervisor来保证其他进程的正常运行,但是万一Supervisor进程挂了怎么办,我们可以使用daemontools来保证Supervisor正常运行,就类似于监控的监控。

下篇看配置文件

转载于:https://my.oschina.net/guol/blog/508105

你可能感兴趣的文章
java位移运算符 转
查看>>
转:strcpy实现的考察要点
查看>>
【转】Map/Reduce简介
查看>>
LOB
查看>>
js验证姓名和身份证号
查看>>
Solr空格默认值是AND还是OR
查看>>
(转)SQL SERVER 生成建表脚本
查看>>
对 Java Integer.valueOf() 的一些了解
查看>>
253:Cube painting
查看>>
2016 年 Java 工具和技术的调查:IDEA 已超过
查看>>
Robot Framework学习笔记(十)------Selenium2Library库
查看>>
openssl 自建CA签发证书 网站https的ssl通信
查看>>
18、jmeter对数据库进行压力测试
查看>>
19、Linux命令对服务器内存进行监控
查看>>
springmvc中的字典表
查看>>
iterator的使用和封个问题
查看>>
mac 安装php mongo扩展,无法使用的解决办法
查看>>
hdu 4627 The Unsolvable Problem
查看>>
hdu 4268 Alice and Bob(STL贪心)
查看>>
struts2文件上传,文件类型 allowedTypes
查看>>