前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux进程监控工具Supervisor简易使用教程

Linux进程监控工具Supervisor简易使用教程

作者头像
Python中文社区
发布于 2018-01-31 07:04:33
发布于 2018-01-31 07:04:33
2.1K00
代码可运行
举报
文章被收录于专栏:Python中文社区Python中文社区
运行总次数:0
代码可运行

專 欄

gw1770df,Python中文社区专栏作者,从事Python开发工作,全栈工程师。

博客:

https://word.gw1770df.cc

Github:

https://github.com/gw1770df

——

Supervisor

官网为 http://supervisord.org/ A Process Control System 使用b/s架构、运行在类Unix系统上一个进程监控管理系统。 它可以使进程以daemon方式运行,并且一直监控进程,在意外退出时能自动重启进程。

安装

Supervisor是使用python开发的一个进程管工具,安装和使用都非常简单。使用 pip 或者 easy_install 安装会非常方便,自动解决依赖关系。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
– sudo pip install supervisor`– sudo easy_install supervisor

pip的安装请参考 Python pip 安装使用教程

初识

安装完成后系统会增加几个命令 supervisord 用于启动supervisor服务。 supervisorctl 用于管理supervisor服务,管理使用supervisor启动的进程。

安装好supervisor后需要手动的生成配置文件。 echo_supervisord_conf | sudo tee /etc/supervisord.conf supervisor默认读取的配置文件为/etc/supervisord.conf,建议将配置文件放在此位置。

我们先简单的查看一下 supervisord.conf,配置文件格式和ini格式配置文件相同,由节、键、值组成,配置文件注释为;

[unix_http_server] 此节是配置连接supervisord的sock的文件,包括sock文件路径,用户认证。使用supervisorctl命令进行管理进程时,使用的就是此sock文件。默认保持开启,如将此项关闭[inet_http_server] 则无法使用。

[inet_http_server] 此节配置supervisor的web管理界面,配置监听的地址和端口,已经用户认证。默认为关闭状态。如需开启则将此节注释去掉,然后修改相应的键值。

[supervisord] 此节为配置supervisor服务参数,例如日志,日志大小等一些参数。

[supervisorctl] 用于配置supervisorctl管理程序参数,例如sock文件路径,需要和[unix_http_server]相同。

[include] 此节作用为包含其他配置文件,本文建议开启此项,包含额外的配置文件,将需要管理的进程配置写入到额外的配置文件,不需要经常编辑主配置文件,保证安全性。修改代码为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[include]files = /etc/supervisor.d/*.conf

读取/etc/supervisor.d/文件夹下所有后缀为conf的文件。

第一步

配置第一个使用supervisord管理的程序

我们使用 python2.7来作为演示,使用SimpleHTTPServer模块方便快速的启动一个http server。

1,创建配置文件 /etc/supervisor.d/test1.conf,写入一下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[program:simplehttpserver]command=/usr/bin/env python2.7 -m SimpleHTTPServer 20080

这是一个最简单的例子,第一行指定当前配置的程序名称。第二行程序运行命令(20080 为 http server端口号)。

2,第一个程序已经配置好,接下来就可以启动supervisord来查看一下效果。 输入命令 sudo supervisord 即可启动服务。 很多机器会打印出几行信息,这并不代表程序出错,意思是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
“supervisord 是使用root身份来启动的,读取默认位置的配置文件,如果需要读取其他位置配置文件请使用 -c 参数” 

3,现在使用ps -ef | grep python来检查一下刚才配置的程序是否已经启动。到此为止我们的第一步已经完成。

详细配置

必要参数只有 command,其他未可选参数。 [program:x] 自定义的程序名不能重复

配置示例

管理tornado应用

需要启动4个进程,分别监听四个连续端口(20081 – 20084)。 将错误输出定向到标准输出,每个端口标准输出写入到不同文件中,单个文件最大50MB,最多保存3个备份。 启动前等待3秒。 supervisord启动时自动启动。程序运行出错自动重启,最大尝试重启次数3次。

管理nginx

nginx默认运行状态是后台运行程序。supervisord不能管理此类程序需要,需要修改nginx主配置文件。 在nginx最外层加入daemon off;

最简单的配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[program:nginx]command=/usr/sbin/nginx ;建议使用绝对路径。

supervisorctl

supervisor进程管理工具,可以方便启动停止进程,查看程序日志,重新载入配置文件。 如果supervisord配置文件不再默认位置,使用supervisorctl工具时需要指定配置文件路径 supervisordctl -c 配置文件路径 常用命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    supervisordctl status 查看进程运行状态    supervisordctl start 进程名 启动进程    supervisordctl stop 进程名 关闭进程    supervisordctl restart 进程名 重启进程    supervisordctl update 重新载入配置文件    supervisordctl shutdown 关闭supervisord    supervisordctl clear 进程名 清空进程日志    supervisordctl 进入到交互模式下。使用help查看所有命令。

start stop restart + all 表示启动,关闭,重启所有进程。

如果一个进程启动了多个副本,例如上文tornado-test,关闭所有副本。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
玩转企业常见应用与服务系列(十一):进程管理工具 Supervisor 详解
前面介绍了企业常用服务 NFS 、 FTP 、 DHCP 、DNS 、Samba 、lsyncd 、Postfix 、Squid 、Varnish 、expect 相关的知识点,今天我将详细的为大家介绍进程管理工具 Supervisor相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈支持一波!!!
民工哥
2023/11/25
1.2K0
玩转企业常见应用与服务系列(十一):进程管理工具 Supervisor 详解
如何使用supervisor管理你的应用
1、前言 Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是UNIX-like系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。 提供的高可用场景,当你的程序出现异常,例如core/内存溢出等,导致服务进程被杀死,这个时候supervisort监听到进程终止后,会自动将它重新拉起。 2、安装 supervisor是基于python开发的,所以安装时首先要保证有python环境
用户1225216
2018/03/29
2.1K0
supervisor管理进程
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程),只需要简单的配置一下即可,且有web端,状态、日志查看清晰明了。。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。组成部分:supervisord[服务端,要通过这个来启动它]和supervisorctl[客户端,执行stop等命令]
菲宇
2019/06/13
7700
supervisor服务监控工具
官网:http://www.supervisord.org/running.html#supervisord-command-line-options
陈不成i
2021/04/28
9350
使用Supervisor管理进程
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
喝茶去
2020/07/21
5750
Linux/Unix进程管理工具supervisor安装与配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
菲宇
2019/06/12
1.1K0
Linux/Unix进程管理工具supervisor安装与配置
Supervisor快速入门 | 使用Supervisor守护Nginx进程
在我们生产环境的时候,有些任务是不能停止的,否则业务就会受到影响,那么如何保证这些任务的高可用呢?那就需要用到我们的守护进程了,比方说我们的进程运行挂掉之后自动恢复等等,这些都可以利用工具来实现,针对不同的项目可以使用不同的工具。
憧憬博客
2020/07/21
12.5K0
Supervisor进程管理详解「建议收藏」
Supervisor是用Python开发的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
全栈程序员站长
2022/10/03
1.1K0
Supervisor进程管理详解「建议收藏」
进程管理工具supervisor教程及告警配置
官方介绍说: Supervisor: A Process Control System Supervisor是一个客户端/服务器系统,允许其用户监视和控制类UNIX操作系统上的许多进程。
若与
2019/04/18
3.7K0
进程管理工具supervisor教程及告警配置
安全运维 | Supervisor进程管理工具
Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
安全小王子
2021/09/23
1.2K0
安全运维 | Supervisor进程管理工具
python supervisor使用
Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上。Supervisor 官方版目前只能运行在 Python 2.4 以上版本,但是还无法运行在 Python 3 上
周小董
2019/03/25
1.3K0
python supervisor使用
Supervisor使用详解
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
Lansonli
2021/10/09
1.2K0
Supervisor 进程管理
Supervisor是用Python开发的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
chuchur
2022/11/14
5930
在Centos7使用superviso
置顶: 推荐使用pip install supervisor安装最新版supervisor,yum install supervisor最高版本3.1.4,有很多bug
py3study
2020/01/06
1.1K0
Supervisor | 笔记
使用supervisor进程管理命令之前先启动supervisord,否则程序报错。 使用命令supervisord -c /etc/supervisord.conf启动。 若是centos7:
yiyun
2022/04/01
1.1K0
Supervisor | 笔记
进程监控工具supervisor 启动Mongodb
进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具。 Supervisor是一个Python开发的client/server系统,可以管理和监控*nix上面的进程。不过同daemontools一样,它也不能监控daemon进程 官网:http://supervisord.org/  二为啥用supervisor 部署简单 : 为啥简单呢?因为咱们通常管理linux进程的时候,一般来说都需要自己编写一个能够实现
张善友
2018/01/29
2.5K0
supervisor简单使用
Supervisor 是用Python开发的一套通用的进程管理程序,是Linux/Unix系统下的一个进程管理工具。可以很方便的监听、启动、停止、重启一个或多个进程。能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
dogfei
2020/07/31
5240
supervisor 进程管理
Supervisor (http://supervisord.org) 是一个用 [Python] 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
全栈程序员站长
2022/08/09
9790
supervisor 进程管理
linux进程管理工具-supervisor
作者:matrix 被围观: 2,800 次 发布时间:2017-02-13 分类:Linux 零零星星 | 无评论 »
HHTjim 部落格
2022/09/26
9270
linux进程管理工具-supervisor
【Docker】Supervisor 实现单容器运行多服务进程
近期笔者在工作中遇到一个特殊的需求场景,即在单个容器中同时运行 php-fpm 和 nginx 服务,并通过 cron 服务管理计划任务。
行者Sun
2025/01/16
1960
【Docker】Supervisor 实现单容器运行多服务进程
相关推荐
玩转企业常见应用与服务系列(十一):进程管理工具 Supervisor 详解
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验