博客
关于我
supervisor简洁用例
阅读量:444 次
发布时间:2019-03-06

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

supervisor是一个强大的Linux/Unix系统进程监控和管理工具,由Python编写,可以通过pip安装。它能够将普通的命令行进程转换为后台daemon进程,并监控这些进程的状态,当发现异常退出时可以自动重启。supervisor的主要优势在于它能够对一组进程进行统一管理,这在传统的Linux系统中是不存在的功能。

为什么使用supervisor?

supervisor的主要用途是管理一组或多个进程,尤其是在运行长时间的web服务时非常有用。它能够将web服务的进程组当作自己的子进程管理,当主进程挂掉时,supervisor会自动重启它。这种对进程组的统一管理是Linux系统中难以实现的。

supervisor的主要组件

supervisor的主要组件包括:

  • supervisord:用于管理其他进程的主进程
  • supervisorctl:supervisor的命令行客户端工具,用于与supervisord通信

supervisor的主配置文件:supervisord.conf

supervisord的配置文件分为多个部分,每个部分对应不同的功能。以下是常见配置部分的说明:

[unix_http_server]

该配置块用于配置一个监听在socket上的HTTP服务器。参数包括:

  • file:指定socket文件的路径,supervisorctl通过它与supervisord通信。
  • chmod:指定socket文件的权限。

[supervisord]

该配置块用于设置supervisord进程的全局参数,包括:

  • logfile:指定supervisord的日志文件路径,与子进程的日志文件不同。
  • logfile_maxbytes:指定日志文件的最大大小(单位:KB、MB、GB),默认为50MB。当日志文件达到该大小时会自动轮转。
  • logfile_backups:指定日志轮转的备份数量,默认为10。如果设置为0,则不备份日志文件。
  • loglevel:指定日志级别,支持的值包括:error、warn、info、debug、trace、blather、critical。
  • pidfile:指定supervisord的PID文件路径。
  • nodaemon:如果设置为true,supervisord会在前台启动,而不是以daemon进程形式运行。
  • minfds:supervisord在成功启动前最少需要的文件描述符数量,默认为1024。
  • minprocs:supervisord在成功启动前最少需要的进程描述符数量,默认为200。

[supervisorctl]

该配置块用于设置supervisorctl的通信参数,包括:

  • serverurl:指定supervisorctl与supervisord通信的UNIX socket路径,默认为unix:///tmp/supervisor.sock

[rpcinterface]

该配置块用于设置RPC接口。若想使用supervisord或web接口,需启用该选项:

  • supervisor.rpcinterface_factory:指定RPC接口的工厂类,默认为supervisor.rpcinterface:make_main_rpcinterface

[include]

该配置块用于包含额外的配置文件。例如:

  • files:指定一个或多个INI文件路径,用于读取包含程序配置的文件。

program配置块

每个program配置块用于定义一个要监控的程序,例如web服务器的配置。示例配置如下:

[program:myserver]command=/home/my_web_server/venv/bin/gunicorn -w4 -b0.0.0.0:8105 app.wsgi:applicationdirectory=/home/my_web_serveruser=deploystdout_logfile=/home/logs/server.logstderr_logfile=/home/logs/server.err.log

可选配置

除了基本配置,supervisord还支持以下选项:

  • autorestart=true:在子进程退出时自动重启。
  • priority=1:设置子进程的启动和关闭优先级,数字越高,优先级越高。
  • numprocs=1:指定要启动的进程数量。

reload配置

当你在新建或修改了INI配置文件后,需要使用supervisorctl重新加载配置:

supervisorctl reload

supervisor是一个强大的工具,能够帮助系统管理员轻松管理长时间运行的服务进程。通过合理配置supervisord和supervisorctl,你可以实现对web服务、数据库等关键进程的统一监控和管理。

转载地址:http://zulyz.baihongyu.com/

你可能感兴趣的文章
Nginx 多端口配置和访问异常问题的排查与优化
查看>>
Nginx 如何代理转发传递真实 ip 地址?
查看>>
Nginx 学习总结(16)—— 动静分离、压缩、缓存、黑白名单、性能等内容温习
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
Nginx 学习(一):Nginx 下载和启动
查看>>
nginx 常用指令配置总结
查看>>
Nginx 常用配置清单
查看>>
nginx 常用配置记录
查看>>
nginx 开启ssl模块 [emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 结合 consul 实现动态负载均衡
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置https(一)—— 自签名证书
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>