supervisor安装和配置




supervisor 是由python语言编写、基于linux操作系统的一款服务器管理工具,用以监控服务器的运行,发现问题能立即自动预警及自动重启等功能。

Supervisor是一个进程管理工具,官方的说法

用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

这个工具主要就两个命令:

supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令

supervisorctl:启动supervisor的命令行窗口。

安装(Centos):

  1. # yum install python-setuptools
  2. # easy_install supervisor
  3. 如果easy_install不好使就从官方下载:
  4. 然后通过python安装:
  5. # tar zxf supervisor-3.1.3.tar.gz
  6. # cd supervisor
  7. # python setup.py install

成功安装后可以登陆python控制台输入import supervisor 查看是否能成功加载。

生成配置文件(supervisord.conf):

echo_supervisord_conf > /etc/supervisord.conf

修改配置文件:

在supervisord.conf最后增加(分号后边的表示注释,可以不写):

  1. [program:bandwidth]
  2. command=python26 /usr/local/bin/bandwidth.sh  ;需要执行的命令wd)
  3. user =root  ;(default  is  current  user , required  if  root)
  4. autostart=true  ;start at supervisord start (default: true)
  5. autorestart=true  ;whether/when to restart (default: unexpected)
  6. startsecs=3  ;number of secs prog must stay running ( def . 1)
  7. stderr_logfile=/tmp/bandwidth_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
  8. stdout_logfile=/tmp/bandwidth.log  ;stdout log path, NONE  for  none; default AUTO, log输出
  9. (更多配置说明请参考:http://supervisord.org/configuration.html)

运行命令:

supervisord -c /etc/supervisord.conf  //启动supervisor

supervisorctl //打开命令行

  1. [root @iZ2365j7l5bZ  bin]# supervisorctl status   
  2. bandwidth                        RUNNING   pid  2423 , uptime  0 : 06 : 35   
  3. [root @iZ2365j7l5bZ  bin]# supervisorctl help   
  4.   
  5. default  commands (type help <topic>):   
  6. =====================================   
  7. add    clear  fg        open  quit    remove  restart   start   stop  update    
  8. avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version  

ctl中: help //查看命令

ctl中: status //查看状态

另外需要注意:如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。

[配置文件]

[root@vm source]# echo_supervisord_conf > /etc/supervisord.conf

[监视一个程序]

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.[include] /**我是注释,一定要把前面的分号;去掉,不然不会开启include功能,太傻了**/
files = /etc/supervisor/*.ini

在 /etc/supervisor/ 目录下建立 redis.ini 文件

[program:redis]
command=/usr/bin/redis-server /usr/local/redis/redis.conf
autorstart=true
autorestart=true
stdout_logfile=/tmp/supervisor.log

[Web配置]

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

如果配置了用户名和密码,就需要输入用户名和密码才能进入web界面。

[启动supervisord]

[root@vm source]# supervisord可能会输出一堆信息出来/usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.'Supervisord is running as root and it is searching '
/usr/lib/python2.6/site-packages/supervisor-3.1.3-py2.6.egg/supervisor/options.py:383: DeprecationWarning: Parameters to load are deprecated.  Call .resolve and .require separately.return pkg_resources.EntryPoint.parse("x="+spec).load(False)

不用管它

  [root@vm source]# ps -ef |grep supervisordroot     20041     1  0 03:21 ?        00:00:00 /usr/bin/python /usr/bin/supervisord[root@vm source]# ps -ef| grep redisroot     20074 20073  0 03:23 ?        00:00:00 /usr/bin/redis-server *:6379

有上述进程,就表明成功了。

[WEB管理界面]

[命令行管理工具]

[root@vm source]# supervisorctl status
redis                            RUNNING   pid 20074, uptime 0:13:25


来源:http://www.cnblogs.com/sss-justdDoIt/p/5631513.html

supervisor安装和配置

直接命令 easy_install supervisor

如果报错先安装 yum install python-setuptools,再上面一条命令;

安装成功后显示finished,我们再次进行python环境,输入import supervisor ,如果没提示错误则表示安装成功。

接下来是对supervisor配置,首先我们要生成配置文件,在shell终端输入echo_supervisord_conf > /etc/supervisord.conf

接着编辑配置文件

vi /etc/supervisord.conf

这里,每个不同的项目,使用了一个单独的配置的文件,放置在 /etc/supervisor/ 下面,于是修改 /etc/supervisord.conf ,加上如下内容:

[include]
files = /etc/supervisor/*.conf
修改完后,我们便可以将项目的配置文件命名为 .conf 放置在 /etc/supervisor/ 下面即可。


例如在vi /etc/supervisor/usercenter.conf
[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

运行命令:

 分服务端supevisord和客户端supervisorctl

sevice supervisord start

执行命令supervisorctl,启动supervisorctl,进入shell界面

> status    # 查看程序状态
> stop usercenter   # 关闭 usercenter 程序
> start usercenter  # 启动 usercenter 程序
> restart usercenter    # 重启 usercenter 程序
> reread    # 读取有更新(增加)的配置文件,不会启动新添加的程序
> update    # 重启配置文件修改过的程序
>reload      

如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。

=============================================

[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
http://www.ttlsa.com/linux/using-supervisor-control-program/-----挺详细的
随系统启动服务

centos7安装supervisord

    #yum -y install supervisor

    安装路径/usr/bin/supervisord,,配置文件/etc/supervisor.conf

 

一、手动启动/关闭

supervisor手动启动:

    #/usr/bin/supervisord -c /etc/supervisor.conf

supervisor手动关闭:

    #/usr/bin/supervisorctl stop all    先关闭supervisor启动脚本,之后再关闭supervisord服务

    #kill pid

supervisord开机自启动脚本(各版本系统):https://github.com/Supervisor/initscripts

 

二、添加开机自启动服务:

centos7 开机自启动脚本:

    #vim /lib/systemd/system/supervisord.service

# supervisord service for sysstemd (CentOS 7.0+)

# by ET-CS (https://github.com/ET-CS)

[Unit]

Description=Supervisor daemon


[Service]

ExecStart=/usr/bin/supervisord

ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

ExecReload=/usr/bin/supervisorctl $OPTIONS reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

 

这个自启动脚本需要修改/etc/supervisord.conf配置文件:

    #vim /etc/supervisrod.conf
        nodaemon=false    改成true

 

或者:#vim /lib/systemd/system/supervisord.service

[Unit]

Description=Process Monitoring and Control Daemon

After=rc-local.service

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf

SysVStartPriority=99

 

[Install]

WantedBy=multi-user.target

 

无需修改/etc/supervisord.conf配置文件

 

两个自启动脚本都能够添加到systemctl自启动服务

    #systemctl enable supervisord.service

    #systemctl start/restart/stop supervisord.service
 可能还需要chkconf supervisord on


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

斯坦福联合DeepMind提出将「强化学习和模仿学习」相结合,可实现多样化机器人操作技能的学习

原文来源&#xff1a;arXiv作者&#xff1a;Yuke Zhu、Ziyu Wang、Josh Merel、Andrei Rusu、Tom Erez、Serkan Cabi、Saran Tunyasuvunakool、Janos Kram ar、Raia Hadsell、Nando de Freitas、Nicolas Heess「雷克世界」编译&#xff1a;嗯~阿童木呀我们提出了一种无模型的深…

大型传统企业如何向人工智能转型?

来源&#xff1a;FT中文网在新一波技术浪潮的冲击下&#xff0c;以AI、大数据、云计算、物联网、5G通信等一系列技术为代表的“技术簇”所引发的革命对人类社会的影响将是全面且深刻的。每一个商业单元都面对这样的机遇&#xff1a;能否通过对新技术的运用&#xff0c;为客户创…

linux 下载 命令 wget 和 curl

From&#xff1a;http://www.jb51.net/LINUXjishu/86326.html From &#xff1a;Linux curl 命令详解 - http://www.cnblogs.com/duhuo/p/5695256.html Linux curl 命令参数详解&#xff1a;http://www.aiezu.com/system/linux/linux_curl_syntax.html Linux下使用 curl &…

无人驾驶推进时间表及五大技术领域关键节点

来源&#xff1a;莫尼塔财新智库摘要&#xff1a;本文援引莫尼塔财新智库的一篇研究&#xff0c;系统梳理了无人驾驶各关键技术节点以及其成熟时间。”“汽车技术发展到如今&#xff0c;几乎没有人质疑无人驾驶会成为汽车行业变革的巨大浪潮&#xff0c;然而对于各项技术落地的…

背景和弹出 Panel 都带有动画效果的 modal 效果

微软Ajax control toolKit 中有 ModalPopup 控件。可以实现页面遮盖的效果。但是遮盖直接出现&#xff0c;十分突然。我想能不能加上渐变的效果&#xff1f;这样感觉会好一点&#xff0c;炫一点。于是又想如果弹出的对话框(Panel)也有动画效果就会更炫了。于是就有了 Animation…

2018年,这些信息通信技术将大红大紫

来源&#xff1a;人民邮电报、中国信息通信研究院当今&#xff0c;全球信息通信产业又一次面临重大技术突破、产业升级的发展机遇&#xff0c;人工智能、第五代移动通信、虚拟现实、增强现实等新一代技术日益成熟&#xff0c;产业化进程加速。通过对全球信息通信行业重点智库技…

DeepMind提出强化学习新算法,教智能体从零学控制

来源&#xff1a;人工智能和大数据摘要&#xff1a;3月2日&#xff0c;DeepMind发表博客文章&#xff0c;提出一种称为SAC-X&#xff08;计划辅助控制&#xff09;的新学习范式&#xff0c;旨在解决让AI以最少的先验知识&#xff0c;从头开始学习复杂控制问题的挑战。这在真实环…

中国各地AI行业政策汇总及解读

来源&#xff1a;数据科学与人工智能随着人工智能的快速发展&#xff0c;国家相继出台一系列政策支持中国人工智能的发展&#xff0c;推动中国人工智能步入新阶段。2017年7月20日&#xff0c;国务院印发了《新一代人工智能发展规划》。规划中提到分三步走&#xff1a;第一步&am…

常州的照片

出差去常州照的几张照片&#xff0c;那边的天气很暖和了。 转载于:https://www.cnblogs.com/Duiker/archive/2008/03/17/1109665.html

从Big Dog到Spot Mini:波士顿动力「四足机器人」进化史概览

来源&#xff1a;雷克世界丨「raicworld」公众号导语&#xff1a;前不久&#xff0c;一段视频刷爆了朋友圈&#xff0c;视频中一个四足机器人不顾人类的阻拦&#xff0c;奋力打开一扇门&#xff0c;最终得以顺利通过。看过视频的人无一不被机器人的“执着”所震撼&#xff0c;一…

重磅《美国机器智能国家战略》

来源&#xff1a; 学术plus2018年3月1日&#xff0c;美国国际战略研究所发布报告《美国机器智能国家战略报告》&#xff0c;提出了机器智能对国防、经济、社会等方面的广泛差异&#xff0c;以及美国在战略制定方面的差距&#xff0c;并给出了具体的意见建议。现将部分内容选编如…

盘点国内最具实力的双足仿人机器人研发团队有哪些?

来源&#xff1a;工业机器人之家北京理工大学 黄强教授团队北京理工大学借鉴人类长期进化所具备自然、快速、协调运动机理和灵巧结构特征&#xff0c;创新地研究了仿人机器人的仿生运动规划、控制与系统集成等关键技术&#xff0c;取得了新突破。提出了仿人机器人运动规划新方法…

数据科学研究的现状与趋势

来源&#xff1a;数据科学DataScience大数据时代的到来催生了一门新的学科——数据科学。本文第1节探讨数据科学的内涵、发展简史、学科地位和知识体系等四个基本问题&#xff0c;并提出了数据科学的两个基本类型——专业数据科学和专业中的数据科学。第2节提出现阶段数据科学研…

DataGridView直接导出EXCEL

1.直接将DataGridView显示的内容导出Excel 1publicvoidDataToExcel(DataGridView m_DataView)2{ 3 SaveFileDialog kk new SaveFileDialog(); 4 kk.Title "保存EXECL文件"; 5 kk.Filter "EXECL文件(*.xls) |*.xls |所有文…

智能的源泉,大脑从何而来?

作者&#xff1a;谢平 中国科学院大学教授引言&#xff1a;人类的神奇常常归结于一个智慧的大脑以及贯穿于其中的无比复杂的神经网络&#xff0c;并认为这源自上帝之手&#xff0c;但其实它并不是无中生有的&#xff0c;而是自然演化的产物&#xff0c;虽然是一个无与伦比的杰作…

物联网技术在智能医疗领域的应用与发展

来源&#xff1a; 传感器技术应对人口结构高龄化所带来的长期照护需求&#xff0c;各国政府纷纷拟定政策&#xff0c;希望利用Wi-Fi、蓝牙、3G、GPS及RFID等物联网技术&#xff0c;架构起移动式医疗网络;且在远距照护等议题发酵下&#xff0c;也带动医疗产业结合物联网进入下一…

xmlHttpRequest无刷新验证用户名

现在好多网站上的注册都用了无刷新验证用户名,这种效果咋看感觉很复杂很难实现,其实它里面用到了Ajax中的核心xmlHttpRequest这个类,如果只是单单想实现这个效果,压根就不用引用Ajax.Net中的组件,因为感觉有点大材小用,下面是具体实现这种效果的方法,希望能给初学Ajax的朋友带来…

如何理解和评价机器学习中的表达能力、训练难度和泛化性能

来源&#xff1a; Eric Jang 的个人博客非常感谢王家兴 (Jiaxing Wang) 把这个博客文章翻译成中文。当我在阅读机器学习相关文献的时候&#xff0c; 我经常思考这项工作是否&#xff1a;提高了模型的表达能力&#xff1b;使模型更易于训练&#xff1b; 提高了模型的泛化性能。在…

谷歌公布72位量子比特处理器,吹响量子霸权冲锋号

作者&#xff1a;杨晓凡谷歌量子 AI 实验室今天发布了新的 72 位量子比特的量子处理器 Bristlecone。虽然目前还没有看到具体的实验结果&#xff0c;但这块芯片的未来有很大潜力&#xff0c;很有可能达成量子计算领域内的重要里程碑。谷歌量子 AI 实验室&#xff08;Google Qua…

AI可以在游戏里称霸,但是解决现实问题太难了

来源&#xff1a;36氪据《大西洋月刊》报道&#xff0c;直到最近&#xff0c;那些能在各类游戏中击败人类冠军的机器&#xff0c;解决现实问题太难了。1997年&#xff0c;为了在国际象棋中击败象棋大师加里卡斯帕罗夫&#xff08;Garry Kasparov&#xff09;&#xff0c;IBM的工…