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天气预报采集器实现代码(网页爬虫)
Oct 07 Python
Python文件夹与文件的操作实现代码
Jul 13 Python
python实现用户登录系统
May 21 Python
python如何实现int函数的方法示例
Feb 19 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Django rest framework如何自定义用户表
Jun 09 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
浅谈JS函数节流防抖
2017/10/18 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python求pi的方法
2014/10/08 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
pandas的qcut()方法详解
2019/07/06 Python
python模块导入的方法
2019/10/24 Python
Pytorch 实现权重初始化
2019/12/31 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
电子商务专员岗位职责
2013/12/11 职场文书
电气工程自动化求职信
2014/03/14 职场文书
宣传活动总结范文
2014/07/01 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技