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的正则表达式re模块的常用方法
Mar 09 Python
Python最长公共子串算法实例
Mar 07 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
python3中的md5加密实例
May 29 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
简单了解python的内存管理机制
Jul 08 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
如何在Python对Excel进行读取
Jun 04 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 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.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
express express-session的使用小结
2018/12/12 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
对Python中range()函数和list的比较
2018/04/19 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
利用python 下载bilibili视频
2020/11/13 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
override和overload的区别
2016/03/09 面试题
python非标准时间的转换
2021/07/25 Python