前言

在一个分布式环境中,每台机器上可能需要启动和停止多个进程,使用命令行方式一个一个手动启动和停止非常麻烦,而且查看每个进程的状态也很不方便。如果有一个工具能够实现每台机器上多个进程的简单高效中心化管理将是非常方便的。于是Supervisord工具应运而生。与Supervisord类似的工具包括monit, daemontools和runit。下面话不多说了,来一起看看详细的介绍吧。

安装

Supervisord是运行在Python环境下的服务监控程序,所以在安装supervisord之前必须有python环境。

yum install python-setuptools

easy_install supervisor

如果安装成功,键入: echo_supervisord_conf,会显示一个superviscord_conf 的配置模板。

这里使用重定向运算符将配置文件定向到/etc路径下(方便管理)

echo_supervisord_conf>/etc/supervisord.conf

配置文件详解

[unix_http_server]

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

logfile_backups=10 ; 日志文件保留备份数量默认 10

loglevel=info ; 日志级别,默认 info,其它: debug,warn,trace

pidfile=/tmp/supervisord.pid ; pid 文件

nodaemon=false ; 是否在前台启动,默认是 false,即以 daemon 的方式启动

minfds=1024 ; 可以打开的文件描述符的最小值,默认 1024

minprocs=200 ; 可以打开的进程数的最小值,默认 200

; the below section must remain in the config file for RPC

; (supervisorctl/web interface) to work, additional interfaces may be

; added by defining them in separate rpcinterface: sections

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]

serverurl=unix:///tmp/supervisor.sock ; 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致

;serverurl=http://127.0.0.1:9001 ; 通过 HTTP 的方式连接 supervisord

; 包含其他的配置文件

[include]

files = relative/directory/*.ini ; 可以是 *.conf 或 *.ini

进程Program配置

[program:usercenter]

directory = /home/leon/projects/usercenter ; 程序的启动目录

command = gunicorn -c gunicorn.py wsgi:app ; 启动命令,可以看出与手动在命令行启动的命令是一样的

autostart = true ; 在 supervisord 启动的时候也自动启动

startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了

autorestart = true ; 程序异常退出后自动重启

startretries = 3 ; 启动失败自动重试次数,默认是 3

user = leon ; 用哪个用户启动

redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false

stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB

stdout_logfile_backups = 20 ; stdout 日志文件备份数

; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

stdout_logfile = /data/logs/usercenter_stdout.log

; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH

; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

将进程配置添加到supervisord.conf文件中

推荐将各个进程配置放到单独的文件中,然后通过[include]配置项引用

[include]

files = /etc/supervisor/*.conf

supervisor服务启动

运行命令

supervisord -c /etc/supervisord.conf

supervisor服务客户端管理

可以使用supervisord的命令行客户端管理工具supervisorctl,来管理进程。

supervisorctl status

supervisorctl stop usercenter

supervisorctl start usercenter

supervisorctl restart usercenter

supervisorctl reread

supervisorctl update

supervisor web管理界面

;[inet_http_server] ; HTTP 服务器,提供 web 管理界面

;port=127.0.0.1:9001 ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性

;username=user ; 登录管理后台的用户名

;password=123 ; 登录管理后台的密码

在浏览器中输入http://127.0.0.1:9001,即可进入web管理界面

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

python怎么打开程序管理器_python进程管理工具supervisor的安装与使用教程相关推荐

  1. python怎么打开程序管理器_Python 进程管理工具 Supervisor 使用教程

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 进程管理工具 Supervisor 使用教程 Supervisor ...

  2. python下载包管理器_Python包管理整理:setuptool管理python相关的包

    setuptool管理python相关的包 一.介绍 setuptool管理python相关的包的工具.这些包是zip格式发布,但是后缀一般都是.egg setuptool能解决python包的依赖关 ...

  3. python的打开方式有哪些_python中打开程序的方式有哪些

    python中打开程序的方式有哪些 发布时间:2020-08-10 11:58:08 来源:亿速云 阅读:64 作者:小新 这篇文章将为大家详细讲解有关python中打开程序的方式有哪些,小编觉得挺实 ...

  4. CAD2020安装完毕,打开提示“许可管理器不起作用或未正确安装” 解决思路

    同事的电脑新安装一块固态硬盘,重新安装了系统:cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408(旗舰版) 安装360,进行了系统修复,补丁安装,然后卸载了 ...

  5. Anbox 实现分析 3:会话管理器与容器管理器的通信

    Anbox 通过一个可执行文件,实现多个不同的应该用逻辑.在启动 Anbox 可执行文件时,通过为它提供不同的命令行参数来确定具体执行哪个命令.Anbox 中这些不同的命令实例之间,整体的通信架构如下 ...

  6. linux进程管理机制,linux进程管理,linux进程管理机制

    linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...

  7. silverlight安装后仍提示未安装_CAD提示“许可管理器不起作用或未正确安装”?来,我来教你方法...

    相信有不少伙伴遇到这样的问题:在安装完成CAD软件激活它的时候,出现这样的一个提示:"许可管理器不起作用或未正确安装",在激活AutoCAD2018中文版软件的时候,为什么会出现这 ...

  8. AutoCAD2018错误提示:“许可管理器不起作用或未正确安装”的解决办法

    我们在运行AutoCAD有时会遇到许可管理器不起作用的情况,导致软件打不开,出现提示:"激活cad提示安全系统软件锁许可管理器不起作用或未正确安装"的对话框如下图所示: 遇到这种情 ...

  9. 前端包管理器的依赖管理原理

    本文主要探究前端包管理器的依赖管理原理,希望对读者有所帮助. 前言 npm是Node.JS的包管理工具,除此之外,社区有一些类似的包管理工具如yarn.pnpm和cnpm,以及集团内部使用的tnpm. ...

最新文章

  1. How to solve C library not available dtaidistance
  2. java接口的定义与实现,学习路线+知识点梳理
  3. 终于有人把SaaS讲明白了
  4. Install Python 3.6 on Ubuntu 16.04, from source
  5. 【Java】身份证的验证
  6. python实现时间戳和时间格式转换以及当前时间,特定时间的前后偏移
  7. Rufus——启动盘创建工具
  8. 摸索Detours 1:使用Vs2019 编译Detours
  9. js根据身份证获取年龄
  10. 快手用最简单的方式感动每一个独特的你 原来背后的黑科技才是真的666
  11. python中的screen blit_什么是python中的surface.blit()函数?它有什么作用?这个怎么运作?...
  12. 企业信息化整体架构图
  13. 转:电容器的好坏测量
  14. @keyup.enter.native
  15. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型
  16. c# 导出excel 数字太长而显示为科学计数法的解决方法
  17. 阿里巴巴集团主席马云演讲实录(图)
  18. MFC-490CW 清零正解
  19. C++核心——类中的const关键字
  20. AAAI 2022高分被拒?别难过!试试这个模板给Chair发个邮件捞一下吧!

热门文章

  1. java swing 图片切换_在一个界面中要实现图片切换,用java要肿么实现??
  2. 七年级计算机与信息安全教案,计算机与信息安全教案.docx
  3. kali创建python脚本_kali下编译学习python3
  4. pph上传文件到window服务器,[upload_labs]文件上传绕过小结
  5. java中ur 传参数_java参数传递(超经典)
  6. 发送方波_室内设备发送器
  7. 2-java学习笔记
  8. Redis基础(三)——数据类型
  9. 使用字节流复制一个文件夹
  10. 第三:Pycharm中安装Python依赖包(非常详细)