Supervisord,用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。

环境
centos
python2.6.6

安装 
wget http://pypi.python.org/packages/source/s/supervisor/supervisor-3.0a10.tar.gz
tar zxvf supervisor-3.0a10.tar.gz
cd supervisor-3.0a10
python setup.py install
如果上述遇到问题,请按如下操作。

依赖setuptools安装
wget https://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
sh setuptools-0.6c11-py2.6.egg

更多 setuptools

产生基础配置文件
echo_supervisord_conf > /etc/supervisord.conf

配置
[inet_http_server]前面的分号去掉; 如下:

启动
/usr/local/bin/supervisord -c /etc/supervisord.conf

关闭

username=user
passwd=123
/usr/local/bin/supervisorctl -u{$username} -p{$passwd} stop all
/usr/local/bin/supervisorctl -u{$username} -p{$passwd} shutdown

查看
浏览器打开 http://127.0.0.1:9001

如下图:

深入配置
[program:service]
command=sh /opt/soft/service/run.sh  ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1                    ; number of processes copies to start (def 1)
directory=/opt/soft/service/                ; directory to cwd to before exec (def no cwd)
autostart=true                ; start at supervisord start (default: true)
autorestart=true              ; retstart at unexpected quit (default: true)
stopsignal=QUIT               ; signal used to kill process (default TERM)
stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
以上配置了一个shell脚本的启动和stop过程。
一般java程序都喜欢在一个shell脚本内初始化classpath,再执行java main。
直接在shell中run java会出现stop失败的情况,在启动前添加 exec即可。

#!/bin/sh
export CLASSPATH=.
for jarpath in `ls library/*.jar`
do
    CLASSPATH=$CLASSPATH:$jarpath
done
export CLASSPATH=$CLASSPATH
exec java com.chen.main;

帮助
supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。

http://smarden.org/runit/runscripts.html 一些可参考的启动配置

注意 
不带参数运行supervisord是以daemon方式运行。
把supervisord加入到开机启动项里就可以完成监控进程的功能了。
当supervisord以非daemon方式运行时,杀掉supervisord后,被监控的进程也退出了。
而以daemon方式运行,杀掉supervisord对被监控进程无影响。

参考推荐:

Supervisord管理Python进程

Supervisord管理杂乱的服务

Linux /proc/pid记录了什么

Python Supervisord 进程管理工具相关推荐

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

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

  2. supervisord进程管理

    Supervisord Supervisord是一款基于Python的进程管理工具,当主机上存在多个的进程需要管理时,通过supervisor可以简化进程的管理. 再通过supervisor提供的rp ...

  3. Supervisor:优秀的进程管理工具

    前言 在服务器中,我们对于项目程序.服务等等的进程管理: 启动:如python,一般就是cd到对应的目录,然后通过python xxx.py进行启动: 关闭:通过ps -ef | grep progr ...

  4. linux服务与进程管理sup,linux下进程管理工具-supervisord

    一 简介 supervisord是linux下的一个优秀的进程管理工具,通过supervisord可以方便管理和应用linux系统下服务进程过多的问题,其支持服务异常退出自动重启,通过浏览器管理控制相 ...

  5. 进程管理工具-Supervisord +CeSi

    Supervisor 简介 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动.重启(自动重启程序).关闭进程 ...

  6. 进程管理工具——Supervisord简介及安装

    一.简介 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动.重启(自动重启程序).关闭进程(不仅仅是 Pyt ...

  7. Python supervisor 强大的进程管理工具

    一.问题背景 1.背景 如何才能让一个进程摆脱终端,获得相对较长的生命周期? 2.后台(守护).前台进程 什么是守护进程?通俗点讲就是后台跑着的进程,不会因为你关了终端服务就会随之停止,直到你把计算机 ...

  8. 【Supervisor】Python 进程管理工具

    Supervisor的安装配置与使用 一.简介 [1]Supervisor是Python开发的进程管理工具(Client/Server系统),可以管理和监控Unix,Linux,Mac OS X 系统 ...

  9. linux下进程管理工具-supervisord

    一 简介 supervisord是linux下的一个优秀的进程管理工具,通过supervisord可以方便管理和应用linux系统下服务进程过多的问题,其支持服务异常退出自动重启,通过浏览器管理控制相 ...

最新文章

  1. 基于耳-脑电图的脑机接口研究进展
  2. python计算平行线
  3. python读取caffemodel文件
  4. Python 3.9.1 安装教程
  5. elasticsearch api中的Delete By Query API操作
  6. 微信小程序,前端大梦想(七)
  7. RFC Destination WORKFLOW_LOCAL_001 - User WF-BATCH
  8. 【2018.4.7】模拟赛之六-ssl2387 树【图论,树】
  9. php imagecreatefromjpeg图片太大_PHP图像处理技术及应用
  10. 高效程序员常用的工具
  11. 【Elasticsearch】Elasticsearch-Hadoop打通Elasticsearch和Hadoop
  12. JavaScript 预解析机制
  13. python爬虫下载文件到指定文件夹_python - 图片爬虫时候遇到问题 urllib.request.urlretrieve 下载到指定文件夹不成功?...
  14. DOS 系统安装工具
  15. 下载并安装lsi MegaRAID raid卡 管理工具
  16. 软件工程实践 Blog5
  17. 苹果输入法怎么换行_朋友圈长文字不折叠输入法,复制粘贴避免只显示一行
  18. Are These Birds?
  19. 检测用户中的异常--UEBA方法
  20. 自动驾驶仿真软件SCANeRstudio(二)场景、仿真、分析

热门文章

  1. 计算机专业13.3寸电脑,13.3英寸vs 12英寸笔记本尺寸谁会更受欢迎?
  2. python vs C++ 谁更快
  3. 浏览器翻译插件免费下载网站链接
  4. JavaScript基础学习——基础(三)
  5. 联想笔记本长时间不用后无法充电问题及解决
  6. Windows内核编程生成.sys文件需要签名才能加载
  7. 美媒体公布枪杀阿富汗平民的美军士兵身份
  8. linux ls -l 文件大小单位,ls显示文件大小时显示单位
  9. oracle中的同义词
  10. Socket网络编程基本数据流图