supervisor 简单使用
发布时间:2020-12-15 21:29:15 所属栏目:安全 来源:网络整理
导读:一、介绍 supervisor 是用 Python 开发的一个 C/S 服务。是 Linux/Unix 系统下的进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方
一、介绍supervisor 是用 Python 开发的一个 C/S 服务。是 Linux/Unix 系统下的进程管理工具。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。 注意:只能用在Unix系统中,Windows用不了 二、安装yum 方式 #更新yum源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #yum安装 yum install supervisor -y 三、配置文件cat /etc/supervisord.conf [unix_http_server] file=/opt/supervisor.sock ; supervisorctl 使用的 socket 文件 chmod=0700 ; socket 文件权限 ;chown=nobody:nogroup ; socket file uid:gid owner ;username=user ; default is no username (open server) ;password=123 ; default is no password (open server) [inet_http_server] ; web 管理界面,即在页面做重启、停止等操作 port=*:9001 ; 监听端口 username=admin ; 用户 password=123 ; 密码 [supervisord] logfile=/var/log/supervisord.log ; supervisor日志文件 $CWD/supervisord.log logfile_maxbytes=50MB ; 日志文件大小,默认 50MB logfile_backups=1 ; 默认保留1个文件 loglevel=info ; 日志级别,默认info; 其他格式: debug,warn,trace pidfile=/var/run/supervisord.pid ; pid 文件 nodaemon=false ; 是否在前台运行,默认false,以 daemon模式运行 minfds=1024 ; 可以打开文件描述符的最小值 minprocs=200 ; 可以打开进程数最小值 ;umask=022 ; process file creation umask; default 022 ;user=chrism ; default is current user,required if root ;identifier=supervisor ; supervisord identifier,default is ‘supervisor‘ ;directory=/opt ; default is not to cd during start ;nocleanup=true ; don‘t clean up tempfiles at start; default false ;childlogdir=/opt ; ‘AUTO‘ child log dir,default $TEMP ;environment=KEY="value" ; key value pairs to add to environment ;strip_ansi=false ; strip ansi escape codes in logs; def. false [supervisorctl] serverurl=unix:///opt/supervisor.sock ; use a unix:// URL for a unix socket ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket ;username=chris ; should be same as in [*_http_server] if set ;password=123 ; should be same as in [*_http_server] if set ;prompt=mysupervisor ; cmd line prompt (default "supervisor") ;history_file=~/.sc_history ; use readline history if available [include] files = /etc/supervisord.d/*.conf ;子文件 四、修改配合文件vim /etc/supervisord.conf [inet_http_server] ; inet (TCP) server disabled by default 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/supervisord.d/*.conf 创建.conf目录 mkdir /etc/supervisord.d 创建nginx配置文件 vim nginx.conf [program:nginx] autorestart=True autostart=True redirect_stderr=True ;environment=PATH="" command=/usr/sbin/nginx -g ‘daemon off;‘; 五、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 ?七、执行# supervisord -c /etc/supervisord.conf # supervisorctl# 重启supervisor# supervisorctl reload (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |