ubuntu-server下安装配置supervisor进程管理

目的:使用supervisor进行进程管理,方便使用。html

操做:python

> sudo apt-get install supervisor # 安装supervisorweb

  一、安装完成后,/etc/supervisor/supervisord.conf 是supervisor的主要配置文件。安全

    supervisor的配置文件默认是不全的,不过在大部分默认的状况下,上面说的基本功能已经知足。服务器

    supervisor的配置参数较多,详细的配置及说明请百度。socket

    注:分号(;)开头的配置表示注释ui

    [unix_http_server]url

    file=/tmp/supervisor.sock   ;UNIX socket 文件,supervisorctl 会使用
    ;chmod=0700                 ;socket文件的mode,默认是0700
    ;chown=nobody:nogroup       ;socket文件的owner,格式:uid:gid
 
    ;[inet_http_server]         ;HTTP服务器,提供web管理界面
    ;port=127.0.0.1:9001        ;Web管理后台运行的IP和端口,若是开放到公网,须要注意安全性
    ;username=user              ;登陆管理后台的用户名
    ;password=123               ;登陆管理后台的密码
 
    [supervisord]
    logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log
    logfile_maxbytes=50MB        ;日志文件大小,超出会rotate,默认 50MB,若是设成0,表示不限制大小
    logfile_backups=10           ;日志文件保留备份数量默认10,设为0表示不备份
    loglevel=info                ;日志级别,默认info,其它: debug,warn,trace
    pidfile=/tmp/supervisord.pid ;pid 文件
    nodaemon=false               ;是否在前台启动,默认是false,即以 daemon 的方式启动
    minfds=1024                  ;能够打开的文件描述符的最小值,默认 1024
    minprocs=200                 ;能够打开的进程数的最小值,默认 200
 
    [supervisorctl]
    serverurl=unix:///tmp/supervisor.sock ;经过UNIX socket链接supervisord,路径与unix_http_server部分的file一致
    ;serverurl=http://127.0.0.1:9001 ; 经过HTTP的方式链接supervisord
    
    [program:xxx] # 这个是咱们配置被管理进程的参数,xxx是进程名,也能够将其单独卸载[include]下指定的目录中,并以指定的后缀结尾
    省略....(下面会写)
    
    ;包含其它配置文件
    [include]
    files = relative/directory/*.ini    ;能够指定一个或多个以.ini结束的配置文件
    # files = /etc/supervisor/conf.d/*.conf  ;这样写也是ok的,由本身指定,之后就能够将本身的进程配置文件放在这个目录下
 
  二、/etc/supervisor/conf.d/*.conf 这个地方就是上面管理进程所放的文件夹
    开始给本身须要的脚本程序编写一个子进程配置文件,让supervisor来管理它,
    放在/etc/supervisor/conf.d/目录下,以.conf做为扩展名(每一个进程的配置文件均可以单独分拆也能够把相关的脚本放一块儿)。
    如任意定义一个和脚本相关的项目名称的选项组(/etc/supervisor/conf.d/test.conf)   

      #项目名
      [program:blog]
      #脚本目录
      directory=/opt/bin
      #脚本执行命令
      command=/usr/bin/python /opt/bin/test.py
      #supervisor启动的时候是否随着同时启动,默认True
      autostart=true
      #当程序exit的时候,这个program不会自动重启,默认unexpected
      #设置子进程挂掉后自动重启的状况,有三个选项,false,unexpected和true。若是为false的时候,不管什么状况下,都不会被从新启动,若是为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
      autorestart=false
      #这个选项是子进程启动多少秒以后,此时状态若是是running,则咱们认为启动成功了。默认值为1
      startsecs=1
      #日志输出
      stderr_logfile=/tmp/blog_stderr.log
      stdout_logfile=/tmp/blog_stdout.log
      #脚本运行的用户身份
      user = zhoujy
      #把 stderr 重定向到 stdout,默认 false
      redirect_stderr = true
      #stdout 日志文件大小,默认 50MB
      stdout_logfile_maxbytes = 20M
      #stdout 日志文件备份数
      stdout_logfile_backups = 20spa

> supervisord # 启动supervisor服务debug

  注意:执行supervisord时出现supervisor error :Another program is already listening on a port that one of our HTTP servers is,说明你的supervisord已经启动了,经过 ps -ef | grep supervisord 来查看进程,能够kill他再从新起。

附上一些命令:

  supervisord -c /etc/supervisord.conf   # supervisor服务启动

  supervisorctl # 服务客户端管理(在supervisorctl客户端下help一下)

    supervisorctl status //查看状态

    supervisorctl start web_server // 开启一个进程(web_server=你配置中写的程序名称)

    supervisorctl stop web_server //中止一个进程

    supervisorctl restart web_server //重启一个进程

    supervisorctl reload # 从新启动配置中的全部程序,更改了supervisor的配置后执行一下

    supervisorctl reread // 从新加载配置,更改了进程配置后

    supervisorctl update // 更新启动列表,更改了进程配置后

参考:

https://www.cnblogs.com/xuezhigu/p/7660203.html

http://www.cnblogs.com/taek/p/8465393.html

........

相关文章
相关标签/搜索