iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux下如何安装并使用Supervisor
  • 327
分享到

Linux下如何安装并使用Supervisor

2023-06-27 16:06:41 327人浏览 独家记忆
摘要

这篇文章主要为大家展示了“linux下如何安装并使用Supervisor”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装并使用Supervisor”这篇文章吧。Supervis

这篇文章主要为大家展示了“linux下如何安装并使用Supervisor”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装并使用Supervisor”这篇文章吧。

Supervisor是用python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

Linux下如何安装并使用Supervisor

安装

Supervisor是基于python开发的,安装Supervisor前,需要先安装Python,Supervisor可以通过pip或者easy_install安装。

通过easy_install安装
$ yum install python-setuptools$ easy_install supervisor

或者,通过pip安装

$ pip install supervisor

结构

Supervisord

主进程,负责管理进程的server,它会根据配置文件创建指定数量的应用程序的子进程,管理子进程的整个生命周期,对crash的进程重启,对进程变化发送事件通知等。同时内置WEB server和XML-rpc Interface,轻松实现进程管理。

Supervisorctl

管理client,用户通过命令行发送消息给supervisord,可以查看进程状态,加载配置文件,启停进程,查看进程标准输出和错误输出,远程操作等。

Web server

SuperviOSr提供了web server功能,可通过web控制进程。

XML-RPC interface

XML-RPC接口,提供XML-RPC服务来对子进程进行管理,监控。

基本使用

Supervisor的配置文件命名为supervisord.conf,它为supervisord(Supervisor 的主服务命令) 和 supervisorctl(Supervisor 的监控管理命令) 提供配置选项设置。 Supervisor并不规定配置文件supervisord.conf的存放位置。Supervisor服务启动的时候默认会在:

$CWD/supervisord.conf$CWD/etc/supervisord.conf/etc/supervisord.conf

这几个目录位置查找配置文件supervisord.conf,用yum安装的supervisor默认会生成/etc/supervisord.conf配置文件。Supervisor也提供参数 “-c” 来指定配置文件的目录路径。

如果你是编译安装,或其他系统,可以在终端输入”echo_supervisord_conf”命令查看Supervisor的默认配置的内容。其可以用来生成一份默认的配置文件:

$ echo_supervisord_conf > /etc/supervisord.conf

Supervisor的配置文件生成之后,现在可以添加我们要管理的进程的配置文件。可以把所有配置项都写到supervisord.conf文件里,但并不推荐这样做,而是通过include的方式把不同的程序(组)写到不同的配置文件里。要确保你的supervisord.conf配置文件中include包含了你自定义的配置文件包含进来,如下:

[include]files = /etc/supervisord.d/*.conf

下面我们修改配置文件将memcached进程以deamon方式拉起(memcached进程也可以是一个shell或python脚本),并对此进行监控。

先在supervisor目录下创建一个配置文件,如下

$ cat /etc/supervisord.d/memcached.conf[program:memcached]# 启动程序的命令;command = /usr/bin/memcached -m 5120 -p 11211 -u nobody -l 0.0.0.0 -b 65535# 在supervisord启动的时候也自动启动;autostart = true# 程序异常退出后自动重启;autorestart = true# 启动5秒后没有异常退出,就当作已经正常启动了;startsecs = 5# 启动失败自动重试次数,默认是3;startretries = 3# 启动程序的用户;user = nobody# 把stderr重定向到stdout,默认false;redirect_stderr = true# 标准日志输出;stdout_logfile=/data/log/memcached/out-memcache.log# 错误日志输出;stderr_logfile=/data/log/memcached/err-memcache.log# 标准日志文件大小,默认50MB;stdout_logfile_maxbytes = 20MB# 标准日志文件备份数;stdout_logfile_backups = 20

一份配置文件至少需要一个 [program:x] 部分的配置,来告诉supervisord 需要管理那个进程。[program:x]语法中的x表示program name,会在客户端(supervisorctl 或 web 界面)显示,在 supervisorctl 中通过这个值来对程序进行start、restart、stop等操作。日志文件要存放的文件夹要创建好。

使用supervisor还有一个更大的好处就是,可以快速开启多个进程,配置参数如下:

process_name=%(process_num)snumprocs=3

表示对同一个配置开启3个线程

启动supervisor,就会拉起memcached进程。

$ supervisord -c /etc/supervisor/supervisord.conf

ps:Supervisor启动后在/tmp目录会产生supervisord.log 、supervisord.pid 、supervisor.sock这三个文件,如果有问题可以查看日志。

查看Supervisor是否已经启动

$ ps -ef | grep supervisor | grep -v greproot      1170     1  0 18:57 ?        00:00:00 /usr/bin/python /usr/bin/supervisord

查看业务进程是否已经被拉起

$ supervisorctl statusmemcached                  RUNNING   pid 1230, uptime 0:04:39

停止Supervisor(子进程也会被停止,也可以针对单个程序进行start、update、restart、stop操作)

$ supervisorctl shutdown

使用supervisorctl命令

Supervisor可通过维护命令supervisorctl管理或通过web管理界面管理。维护命令supervisorctl有两种用法。一种是命令式,一种是交互式。

命令式

\1. 查询各进程运行状态

supervisorctl status

\2. 启、停、重启业务进程,memcached为进程名,即[program:memcached]里配置的值

supervisorctl start memcachedsupervisorctl stop memcachedsupervisorctl restart memcached

\3. 重启所有属于名为groupworker这个分组的进程

supervisorctl start groupworkersupervisorctl stop groupworkersupervisorctl restart groupworker

\4. 启、停、重启全部进程(不会载入最新的配置文件)

supervisorctl start allsupervisorctl stop allsupervisorctl restart all

\5. 重新加载配置文件,停止原有进程并按新的配置启动所有进程(注意:所有进程会停止并重启,线上操作慎重)

supervisorctl reload

\6. 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而被重启(注意:这才是线上可以操作的命令,不会重启原有进程)

supervisorctl update

注意:显示状态为stop停止掉的进程,用reload或者update都不会自动重启。

交互式

$ supervisorctlmemcached                       RUNNING   pid 1256, uptime 0:01:47supervisor> stop memcachedmemcached: stoppedsupervisor> start memcachedmemcached: startedsupervisor> statusmemcached                       RUNNING   pid 1258, uptime 0:00:04supervisor> restart memcachedmemcached: stoppedmemcached: startedsupervisor> statusmemcached                       RUNNING   pid 1259, uptime 0:00:02supervisor>

故障处理

这几个故障都是我使用supervisor时遇到的坑,帮你们填上。

supervisor 比较适合监控业务应用,且只能监控前台程序,如果你的程序是以daemon的方式启动,那么执行:supervisor status 会提示:BACKOFF Exited too quickly (process log may have details)。比如:memcached启动时加上-d选项就是以后台daemon启动,就不能使用supervisor监控了。

/usr/bin/memcached -d -m 5120 -p 11211 -u nobody -l 0.0.0.0 -b 65535

还有一个需要注意的,如果执行supervisor status时报错是:FATAL Exited too quickly (process log may have details),要检查一下是不是因为添加了user = nobody导致执行权限的问题。

如果出现这个错误:

Error: .ini file does not include supervisord section

For help, use /usr/bin/supervisord -h

就是你的自定义的程序配置文件格式有问题(/etc/supervisor/conf.d/*.conf),好好检查了。

其他

1)可以自己编写脚本将Supervisor加入chkconfig中,随系统自动启动。 或者可以使用现成的脚本: Supervisor initscripts。

2)除了supervisorctl 之外,还可以配置supervisrod启动web管理界面,这个web后台使用Basic Auth的方式进行身份认证。

3)除了单个进程的控制,还可以配置group,进行分组管理。经常查看日志文件,包括 supervisord的日志和各个 pragram 的日志文件,程序crash 或抛出异常的信息一半会输出到stderr,可以查看相应的日志文件来查找问题。

4)Supervisor有很丰富的功能,还有其他很多项配置,可以在官方文档获取更多信息:Http://supervisord.org/index.html

以上是“Linux下如何安装并使用Supervisor”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: Linux下如何安装并使用Supervisor

本文链接: https://www.lsjlt.com/news/311864.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux下如何安装并使用Supervisor
    这篇文章主要为大家展示了“Linux下如何安装并使用Supervisor”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装并使用Supervisor”这篇文章吧。Supervis...
    99+
    2023-06-27
  • Linux中如何安装supervisor
    这篇文章给大家分享的是有关Linux中如何安装supervisor的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台d...
    99+
    2023-06-28
  • Linux下如何安装并使用ClusterShell
    这篇文章主要为大家展示了“Linux下如何安装并使用ClusterShell”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何安装并使用ClusterShell”这篇文章吧。Clus...
    99+
    2023-06-27
  • Linux下如何安装并使用Iperf
    这篇文章将为大家详细讲解有关Linux下如何安装并使用Iperf,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能,具有多种参数...
    99+
    2023-06-27
  • Linux下如何安装并使用Speedtest
    这篇文章主要介绍了Linux下如何安装并使用Speedtest的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下如何安装并使用Speedtest文章都会有所收获,下面我们一起来看看吧。安装speedte...
    99+
    2023-06-27
  • Linux下如何安装并使用tmux
    小编给大家分享一下Linux下如何安装并使用tmux,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tmux是Linux上的终端复用神器,可从一个屏幕上管理多个终端...
    99+
    2023-06-27
  • Linux下如何安装并使用jod
    小编给大家分享一下Linux下如何安装并使用jod,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Jed是一个基于终端的编辑器,它的特点是有一个方便的下拉菜单,这让...
    99+
    2023-06-27
  • Linux下如何安装并使用Terminalizer
    小编给大家分享一下Linux下如何安装并使用Terminalizer,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Terminalizer 是一个非常酷炫的命令行...
    99+
    2023-06-27
  • Linux下如何安装并使用Fcitx
    小编给大家分享一下Linux下如何安装并使用Fcitx,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Fcitx 是一个支持扩展的输入法框架。目前,它支持Linux...
    99+
    2023-06-27
  • Linux下如何安装并使用apt-clone
    这篇文章将为大家详细讲解有关Linux下如何安装并使用apt-clone,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当我们在基于 Ubuntu/Debian 的系统上使用apt-clone ,包安装会变...
    99+
    2023-06-27
  • Linux下如何安装并且使用bmon
    这篇文章将为大家详细讲解有关Linux下如何安装并且使用bmon,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。bmon是一个简单但功能强大的基于文本的网络监视和调试工具 ,用于类Unix系统,捕获网络相关...
    99+
    2023-06-27
  • Linux下如何安装并使用迅雷
    这篇文章将为大家详细讲解有关Linux下如何安装并使用迅雷,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编译环境安装必备的软件。sudo apt-get install git build-essenti...
    99+
    2023-06-27
  • Linux下如何安装并使用fish shell
    这篇文章将为大家详细讲解有关Linux下如何安装并使用fish shell,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。fish 是一个非常用户友好的并且功能丰富的 shell,但没有包括在大多数 Lin...
    99+
    2023-06-27
  • Linux下如何安装并使用netstat命令
    这篇文章主要介绍了Linux下如何安装并使用netstat命令,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Netstat命令用于显示协议统计数据和当前TCP/IP网络的连接...
    99+
    2023-06-27
  • Linux下如何安装并使用iostat工具
    小编给大家分享一下Linux下如何安装并使用iostat工具,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux系统中的 iostat是I/O statist...
    99+
    2023-06-27
  • Linux系统下如何安装并使用Gmail
    这篇“Linux系统下如何安装并使用Gmail”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统下如何安装并使用Gmail”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢...
    99+
    2023-06-27
  • Linux下Supervisor的安装配置和基本使用方法
    本篇内容主要讲解“Linux下Supervisor的安装配置和基本使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下Supervisor的安装配置和基本使用方法”吧!Superv...
    99+
    2023-06-12
  • Linux下如何安装并使用Lighttpd Web服务器
    今天小编给大家分享一下Linux下如何安装并使用Lighttpd Web服务器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-27
  • Linux下怎么安装并使用Hping
    本篇内容主要讲解“Linux下怎么安装并使用Hping”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么安装并使用Hping”吧!Hping是一个命令行下使用的TCP/IP数据包组装...
    99+
    2023-06-27
  • Linux下怎么安装并使用Dutree
    这篇文章主要介绍“Linux下怎么安装并使用Dutree”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux下怎么安装并使用Dutree”文章能帮助大家解决问题。dutree是一款免费的开源,快...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作