无论是在日常工作中还是平时玩代码中,我总是离不开 Supervisor,其实很久之前我就写过一篇文章:supervisord 部署 Flask,在里面,我仔细讲解了如何在 Linux 环境下安装并且配置 supervisord,并且如何部署应用,应该稍微懂点 Linux 的同学就可以按照指导自己在自己的环境下配置一份出来。但是,我日常更多的情况下是在 Mac 下工作的,虽然 Mac 下已经有很多强大的工具让我的工作保持高效,但是,还是有一些东西是 Mac 上的软件不能提供给我的,所以我还是依赖于 supervisor,所以,本文就将讲述一下如何在 Mac 环境下配置一个好用的进程管理环境。

配置 Supervisor 自启动

对于简单的安装配置 supervisor 就不多说了,还是简单的使用 pip 即可安装完毕,Supervisor 的自己配置也可以参照我之前的文章supervisord 部署 Flask进行。但是,这还不够,因为我的电脑是要重启的(是的,Mac 也要重启,我大概半个月或者一个月重启一次)。默认情况下,重启之后 Supervisor 是不会起来的,所以我还得手动让它起来,然后才能带动我的其他软件起来,这个不是很舒服,所以我希望能够调整一下配置,让 Supervisor 自启动。

在搜索了一番之后,发现在 Mac 中有类似于 systemd 的应用,名为:Launchd,Launchd 是 OSX 用来初始化系统的重要进程,它是内核装载成功之后在 OS 环境中启动的第一个进程(好像很厉害)。而且,有意思的一点在于,在 Launchd 中注册一个应用很简单,只需要一个 plist 文件就可以了,通常这个 plist 文件是放在目录 ~/Library/LaunchAgents 下的。所以我就依样画葫芦写了一个配置:

<?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>io.liqiang.supervisord</string><key>ProgramArguments</key><array><string>/usr/local/bin/supervisord</string><string>-n</string><string>-c</string><string>/usr/local/share/supervisor/supervisord.conf</string></array><key>RunAtLoad</key><true/>
</dict>
</plist>

测试进程

讲道理到这里应该就是就完了。但是,为了让大家有一个比较好的验证体验,所以我还加了一个 MongoDB 的配置,如果你有兴趣的话,默认配置应该放在:/usr/local/share/supervisor/conf.d/mongod.conf 这个位置,配置内容为:

[program:mongod]
command=/usr/local/mongodb/bin/mongod -f /data/conf/mongodb.yaml
autostart=false
autorestart=false
startretries=3
redirect_stderr=true
stdout_logfile = /var/log/supervisord_mongodb.log
loglevel=info
exitcodes=1,2

依照这个配置完成之后,还是老样子:

$ supervisorctl reread
$ supervisorctl update
$ supervisorctl start mongod

这里应该 MongoDB 是起来了,现在连接上去试一下。

Reference

  1. Setting up supervisord in Mac OS X

转载于:https://www.cnblogs.com/makor/p/supervisor-in-mac.html

Mac Supervisor 管理进程相关推荐

  1. mysql用supervisor管理_使用Supervisor管理进程

    1.  Superivisor简介: Supervisor是一个C/S系统,它允许用户在类UNIX系统上监控和管理一系列的进程.你可以把一个进程以Daemon的形式用Supervisor来管理. 2. ...

  2. 在Docker里使用(支持镜像继承的)supervisor管理进程(转)

    这篇文章是受 dockboard 之托帮忙翻译的与 docker 有关的技术文章.译自 Using Supervisor with Docker to manage processes (suppor ...

  3. docker supervisor管理进程

    一.使用supervisor来管理 supervisor:进程管理工具,基于C/S架构.(其提供web接口给用户查询和 控制),它允许用户去监控和控制在类unix系统的进程. 使用supervisor ...

  4. php使用supervisor管理进程脚本

    supervisor是用python开发的一个在linux系统下的进程管理工具,可以方便的监听,启动,停止一个或多个进程.当一个进程被意外杀死后,supervisor监听到后,会自动重新拉起进程. 一 ...

  5. 使用 supervisor 管理进程

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

  6. supervisor 管理进程

    一.简介 (1) 基于python编写,安装方便 (2) 进程管理工具,可以很方便的对用户定义的进程进行启动,关闭,重启,并且对意外关闭的进程进行重启 ,只需要简单的配置一下即可,且有web端,状态. ...

  7. Flask部署| gunicorn、nginx部署flask项目,并用supervisor来管理进程

    本科的时候做公众号,开始提供学生教务查询服务,后端从PHP转到Python,无论是使用django还是flask,部署都没PHP那么方便,每次修改程序完,都是ps ax,然后再kill,再run.em ...

  8. docker之使用supervisor管理多个进程

    docker题外话: centos7安装supervisor: 源码编译安装: 下载源码文件:supervisor-3.3.1.tar.gz 下载地址:https://pypi.python.org/ ...

  9. Supervisor管理hhvm进程

    2019独角兽企业重金招聘Python工程师标准>>> hhvm速度很快,但由于与网站程序兼容性或hhvm本身不成熟,跑一段时间后会出现hhvm经常宕掉,而前台出现502 bad g ...

最新文章

  1. suse linux 命令
  2. C Primer Plus 第7章 C控制语句:分支和跳转 7.1 if语句
  3. 从课堂走向实践还有多远?
  4. 成熟的 Git 分支模型
  5. 用C++解析HTTP下载下来的HTML文档
  6. 02_HBase集群部署
  7. 使用 matlab 数字图像处理(九)—— 去卷积(deconvolution,逆滤波复原)
  8. python_day9 回调函数
  9. python: ubuntu下把py2.7改成py3
  10. BLS数字签名算法介绍及拓展
  11. Spring AOP、拦截器、过滤器的区别
  12. SQL Server2017 安装错误:Verify that you have sufficient access to that key
  13. 全国每年的考证时间大全
  14. devil may cry 4 android apk,Devil May Cry
  15. Vue3.0教程 (一)vue脚手架安装和搭建
  16. 如何让Jmeter压力测试减少压力机的资源消耗
  17. C# Winform窗体实现支付宝扫码支付
  18. zen cart产品页面伪静态后-c-.html,zencart .htaccess伪静态文件规则
  19. __init__() takes 1 positional argument but 5 positional arguments (and 1 keyword-only argument) were
  20. 信息量理解、信息熵公式的推导

热门文章

  1. 抓取流量分析恶意软件或泄密流量(精)
  2. Python字典类型内部做判断赋值
  3. MySQL数据的备份与还原实现步骤
  4. 十一、伪指令、数据类型、操作符
  5. 141.Linked List Cycle
  6. android菜鸟学习笔记13----Android控件(二) 自定义控件简单示例
  7. OSMeteorTranslationAPI(百度,有道)对比
  8. 2021上半年朋友圈都在传的10本书,找到了
  9. 学Python半年,56岁的潘叔叔晒出99分成绩单,你呢?
  10. 最新!外国人最常说的100个“中国词”出炉 第一个你绝对想不到…