前言
在线部署Web 应用程序后,您需要确保该应用程序始终运行。如果您的Web 应用程序由于程序异常或错误而终止,您需要确保可以重新启动该程序。我们将立即继续为您服务。
Supervisor 是一个解决这个问题的工具,它提供了诸如在程序崩溃后重新启动等功能。
简介
Supervisor 是一个用Python 编写的进程管理工具,可以让您在类UNIX 系统(不支持Windows)上轻松启动、重新启动(自动重新启动程序)和关闭进程(不仅仅是Python 进程)。
Supervisor 是一个客户端/服务器系统,允许用户控制基于UNIX 的操作系统上的许多进程。
安装
1.redhat/centos系统
安装命令: yum installvisor 这种安装方法将其设置为在引导时自动启动。
2.Ubuntu系统:
安装命令: apt-get installvisor 以这种方式安装会将其设置为在引导时自动启动。
3. pip 命令(已弃用)
我通过pip install Supervisor 安装它,但我必须手动启动它并将其设置为在启动时启动。
Supervisor 配置
Supervisor是一个C/S模式的程序。 Supervisord 是服务器端,supervisorctl 是客户端。
被监控
下面介绍如何配置supervisord。 Supervisord 的配置文件默认位于/etc/supervisord.conf 并具有以下内容(;后面是注释):
[unix_http_server]file=/tmp/supervisor.sock ;UNIX套接字文件,由supervisorctl使用;chmod=0700;套接字文件模式,默认为0700;chown=nobody:nogroup;套接字文件所有者,格式:uid:gid;[inet_http_server];提供Web管理界面。用于运行Web管理后台的IP和端口。用户名=用户名。管理员后台密码=123; 登录管理员后台密码[supervisord]logfile=/tmp/supervisord.log; 默认日志文件大小为$CWD/supervisord.loglogfile_maxbytes=50MB。 50MB,设置为0表示没有大小限制。 logfile_backups=10; 默认日志文件备份数量为10;设置为0表示不备份。 loglevel=info; 日志级别、默认信息、以及其他:调试。 warn,tracepidfile=/tmp/supervisord.pid; pid 文件nodaemon=false; 是否在前台启动,默认为false,即以daemon 方式启动minfds=1024;默认为1024minprocs=200,可开启的进程最小数量为200。 [supervisorctl] serverurl=unix: ///tmp/supervisor.sock; 通过UNIX套接字连接到supervisord。匹配文件的unix_http_server 部分。 serverurl=http://127.0.0.1:9001; [program:xx] 是托管进程的配置参数,xx 是进程的名称。 command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run; 程序启动命令autostart=true;startsecs=10也是在supervisord启动时自动启动的。启动10秒后无异常。默认值为1。第二个autorestart=true;程序运行完成后会自动重启。 可选值:[意外、真、假]。默认表示进程被意外杀死后会重新启动。如果启动失败,默认为3user=tomcat;用于启动进程的用户,默认为rootpriority=999,进程启动优先级,默认为999,值较小的先启动。到stdout,默认falsestdout_logfile_maxbytes=20MB;stdout日志文件大小,默认50MBstdout_logfile_backups=20;stdout日志文件备份数量,默认10。请注意,如果指定的目录不存在,则无法正确启动。如果手动创建目录(supervisord自动创建日志文件) stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.outstopasgroup=false; 进程被杀死时停止默认为false。向这个包含子进程的进程组发送信号Killasgroup=false ;默认为false,向这个包含子进程的进程组发送kill信号;包含其他配置文件[include]files=relative/directory /*.ini;一个可以指定多个以.ini 结尾的配置文件进程我们不建议将所有管理配置参数写入supervisord.conf 文件。每个进程都必须创建一个配置文件,将其放置在include指定的目录中,并将其包含在文件中。 Supervisord.conf 文件。
1 创建/etc/supervisor/config.d目录,用于存放进程管理的配置文件。
2 修改/etc/supervisor/supervisord.conf 中的include 参数以包含/etc/supervisor/conf.d 目录。
以下是Tomcat 进程的示例配置。
[program:tomcat]命令=/opt/apache-tomcat-8.0.35/bin/catalina.sh runstdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.outautostart=true autorestart=truestartsecs=5priority=1stopasgroup=truekillasgroup=true
配置管理进程
visord -c /etc/supervisor/supervisord.conf
启动Supervisor服务
出于安全原因,默认配置不会打开Web 管理界面。要启用http访问,您必须修改supervisord.conf配置文件。配置以下内容:
;[inet_http_server] ; 默认情况下禁用inet (TCP) 服务器;port=127.0.0.1:9001 ;(ip_address: 端口说明符,*: 端口用于所有iface);username=user (默认为无用户名(打开服务器));password=123 (默认是无密码(开放服务器))改为:
[inet_http_server] ; inet (TCP) 服务器默认禁用port=0.0.0.0:9001 ; (ip_address:port 说明符, *:port for all iface)username=user (默认为无用户名(开放服务器)) 密码=123 (开放服务器) ) 重启后访问ip:9001(账号密码为user/123)
Web管理界面
visorctl 是supervisord 的命令行客户端工具。使用的设置与supervisord相同。我这里就不解释了。下面主要介绍操作supervisorctl时经常用到的命令。
可以输入命令supervisorctl进入supervisorctl的shell交互界面(还是纯命令行),输入以下命令:
help # 显示帮助状态# 显示程序状态stop Program_name # 关闭指定的程序start Program_name # 启动指定的程序restart program_name # 重新启动指定的程序tail -f Program_name # 显示程序更新日志# 也可以使用修改后的配置文件(配置已更改,您可以使用此命令加载新配置),也可以直接使用shell 命令对其进行操作。
Supervisorctl statussupervisorctl update. 稍后我将分享更多DevOps 和DBA 内容,如果您感兴趣,请继续关注。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。