Mac下Supervisor进程监控管理工具的安装与配置


Posted in Python onDecember 16, 2014

Supervisor 是一个类 unix 操作系统下的进程监控管理工具。

安装 Supervisor

Supervisor 是由 Python 写成,可用 Python 的包安装管理工具 pip(Python Package Index) 直接安装:

sudo pip install supervisor

配置 Supervisor

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

$CWD/supervisord.conf

$CWD/etc/supervisord.conf

/etc/supervisord.conf

这几个目录位置查找配置文件 supervisord.conf。Supervisor 也提供参数 "-c" 来指定配置文件的目录路径。

在终端输入 "echo_supervisord_conf" 命令可查看 Supervisor 的默认配置的内容。

生成一份默认的配置文件:

echo_supervisord_conf > /etc/supervisord.conf

这里有选择的设置了一些配置,基本够用,配置如下:

[inet_http_server]

port = 127.0.0.1:9001

username = dhq

password = 123456

 

[unix_http_server]

file = /tmp/supervisor.sock

chmod = 0700

 

[supervisord]

logfile = /Users/dengjoe/.supervisor/supervisord.log

logfile_maxbytes = 50MB

logfile_backups=10

loglevel = info

pidfile = /tmp/supervisord.pid

nodaemon = False

minfds = 1024

minprocs = 200

umask = 022

identifier = supervisor

directory = /tmp

nocleanup = true

childlogdir = /tmp

 

[supervisorctl]

serverurl = unix:///tmp/supervisor.sock

 

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

 

 

[program:shadowsocks]

directory = /Users/dengjoe/shadowsocks

command = /usr/bin/python /Users/dengjoe/shadowsocks/local.py

autostart = true

autorestart = true

启动 Supervisor

supervisord -c /etc/supervisord.conf

参数 "-c" 表示指定 Supervisor 配置文件的路径

把 supervisord 加入系统启动服务

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

    <key>KeepAlive</key>

    <dict>

        <key>SuccessfulExit</key>

        <false/>

    </dict>

    <key>Label</key>

    <string>dengjoe.supervisord</string>

    <key>ProgramArguments</key>

    <array>

        <string>/usr/local/bin/supervisord</string>

        <string>-n</string>

        <string>-c</string>

        <string>/etc/supervisord.conf</string>

    </array>

    <key>RunAtLoad</key>

    <true/>

</dict>

</plist>

启动 Supervisor 服务:

launchctl load ~/Library/LaunchAgents/dengjoe.supervisord.plist

supervisorctl 监控命令

supervisorctl 是 Supervisor 自带的后台进程控制工具,下面是该命令的一些用法:

启动应用:

supervisorctl start program

重新读取配置:

supervisorctl update
Python 相关文章推荐
Python中的rfind()方法使用详解
May 19 Python
深入解析Python中的集合类型操作符
Aug 19 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
Python基于property实现类的特性操作示例
Jun 15 Python
python实现多人聊天室
Mar 31 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
django使用JWT保存用户登录信息
Apr 22 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
python playwright之元素定位示例详解
Jul 23 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 Python
Python 正则表达式(转义问题)
Dec 15 #Python
python正则表达式中的括号匹配问题
Dec 14 #Python
python的类方法和静态方法
Dec 13 #Python
Python计算程序运行时间的方法
Dec 13 #Python
Python编程中的反模式实例分析
Dec 08 #Python
Python实现拼接多张图片的方法
Dec 01 #Python
python字符串替换的2种方法
Nov 30 #Python
You might like
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
php实现微信发红包
2015/12/05 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python http基本验证方法
2018/12/26 Python
python实现自动化上线脚本的示例
2019/07/01 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
应用心理学个人的求职信
2013/12/08 职场文书
党员创先争优承诺书
2014/03/26 职场文书
大学专科自荐信
2014/06/17 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL