supervisor 安装与nginx配置

一、什么是supervisor

  superviosr是一个Linux/Unix系统上的进程监控工具,他/她upervisor是一个Python开发的通用的进程管理程序,能够管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。不过同daemontools同样,它不能监控daemon进程python

二、supervisor 安装与nginx配置

  安装:ios

  yum install python-pip -ynginx

  pip install supervisorvim

  生成配置文件工具

  echo_supervisord_conf > /etc/supervisord.confurl

  修改配置文件spa

  vim /etc/supervisord.conf操作系统

  [inet_http_server] ; inet (TCP) server disabled by defaultpwa

  port=0.0.0.0:9001 ; ip_address:port specifier, *:port for all iface命令行

  username=user ; default is no username (open server)

  password=123 ; default is no password (open server)

  [include]

  files = /etc/supervisor/*.conf

  建立.conf目录     mkdir /etc/supervisor

  建立nginx配置文件  vim nginx.conf

  [program:nginx]

  autorestart=True

  autostart=True

  redirect_stderr=True

  ;environment=PATH=""  

  command=/usr/sbin/nginx -g 'daemon off;';注意必定要前台启动

  user=root

  ;process_name = %(program_name)s%(process_num)d

  ;numprocs=3  

  ;directory=/root/

  stdout_logfile_maxbytes=20MB

  stdout_logfile_backups=20

  ;stdout

  stdout_logfile=/var/log/supervisor/nginx.log

  stderr_logfile=/var/log/supervisor/nginx_error.log

三、supervisord配置块详解:

- logfile:log文件路径
- logfile_maxbytes:log文件达到多少后自动进行轮转,单位是KB、MB、GB。若是设置为0则表示不限制日志文件大小
- logfile_backups:轮转日志备份的数量,默认是10,若是设置为0,则不备份
- loglevel:error、warn、info、debug、trace、blather、critical
- pidfile:pid文件路径
- umask:umask值,默认022
- nodaemon:若是设置为true,则supervisord在前台启动,而不是以守护进程启动
- minfds:supervisord在成功启动前可用的最小文件描述符数量,默认1024
- minprocs:supervisord在成功启动前可用的最小进程描述符数量,默认200
- nocleanup:防止supervisord在启动的时候清除已经存在的子进程日志文件
- childlogdir:自动启动的子进程的日志目录
- user:supervisord的运行用户
- directory:supervisord以守护进程运行的时候切换到这个目录
- strip_ansi:消除子进程日志文件中的转义序列
- environment:一个k/v对的list列表

四、program配置详解:

- command:启动程序使用的命令,能够是绝对路径或者相对路径- process_name:一个python字符串表达式,用来表示supervisor进程启动的这个的名称,默认值是%(program_name)s- numprocs:Supervisor启动这个程序的多个实例,若是numprocs>1,则process_name的表达式必须包含%(process_num)s,默认是1- numprocs_start:一个int偏移值,当启动实例的时候用来计算numprocs的值- priority:权重,能够控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999- autostart:若是设置为true,当supervisord启动的时候,进程会自动重启。- autorestart:值能够是false、true、unexpected。false:进程不会自动重启,unexpected:当程序退出时的退出码不是exitcodes中定义的时,进程会重启,true:进程会无条件重启当退出的时候。- startsecs:程序启动后等待多长时间后才认为程序启动成功- startretries:supervisord尝试启动一个程序时尝试的次数。默认是3- exitcodes:一个预期的退出返回码,默认是0,2。- stopsignal:当收到stop请求的时候,发送信号给程序,默认是TERM信号,也能够是 HUP, INT, QUIT, KILL, USR1, or USR2。- stopwaitsecs:在操做系统给supervisord发送SIGCHILD信号时等待的时间- stopasgroup:若是设置为true,则会使supervisor发送中止信号到整个进程组- killasgroup:若是设置为true,则在给程序发送SIGKILL信号的时候,会发送到整个进程组,它的子进程也会受到影响。- user:若是supervisord以root运行,则会使用这个设置用户启动子程序- redirect_stderr:若是设置为true,进程则会把标准错误输出到supervisord后台的标准输出文件描述符。- stdout_logfile:把进程的标准输出写入文件中,若是stdout_logfile没有设置或者设置为AUTO,则supervisor会自动选择一个文件位置。- stdout_logfile_maxbytes:标准输出log文件达到多少后自动进行轮转,单位是KB、MB、GB。若是设置为0则表示不限制日志文件大小- stdout_logfile_backups:标准输出日志轮转备份的数量,默认是10,若是设置为0,则不备份- stdout_capture_maxbytes:当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位能够是KB、MB、GB- stdout_events_enabled:若是设置为true,当进程在写它的stderr到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发- stderr_logfile:把进程的错误日志输出一个文件中,除非redirect_stderr参数被设置为true- stderr_logfile_maxbytes:错误log文件达到多少后自动进行轮转,单位是KB、MB、GB。若是设置为0则表示不限制日志文件大小- stderr_logfile_backups:错误日志轮转备份的数量,默认是10,若是设置为0,则不备份- stderr_capture_maxbytes:当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位能够是KB、MB、GB- stderr_events_enabled:若是设置为true,当进程在写它的stderr到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发- environment:一个k/v对的list列表- directory:supervisord在生成子进程的时候会切换到该目录- umask:设置进程的umask- serverurl:是否容许子进程和内部的HTTP服务通信,若是设置为AUTO,supervisor会自动的构造一个url