设为首页 收藏本站
查看: 924|回复: 0

[经验分享] Python Supervisord 进程管理工具

[复制链接]

尚未签到

发表于 2017-4-27 06:53:48 | 显示全部楼层 |阅读模式
  Supervisord,用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。
  
环境
centos
python2.6.6
  
安装
wgethttp://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安装
wgethttps://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]前面的分号去掉; 如下:

   DSC0000.jpg

  
启动
/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
  如下图:
DSC0001.jpg

  

深入配置

[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记录了什么

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-369652-1-1.html 上篇帖子: Python性能鸡汤_实践Sam 下篇帖子: python SSH暴力破解工具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表