今天的一个小时学习编程工具是基于python开发的任务管理工具Supervisord,项目官方地址为。下面主要是说明Supervisord的基本用发以及在mac和centos中应用。
一、Supervisord基本用法
1.1 安装Supervisord
supervisor安装方法如下:
|
|
1.2 配置修改
supervisor默认找配置的路径如:/usr/local/etc/supervisord.conf, /usr/local/supervisord.conf, supervisord.conf, etc/supervisord.conf, /etc/supervisord.conf, /etc/supervisor/supervisord.conf
把所有的配置文件都放在 supervisord.conf 并不是个好主意,一旦管理的进程过多,就很麻烦。所以一般都会 新建一个目录来专门放置进程的配置文件,然后通过 include 的方式来获取这些配置信息
1.3 Supervisord基础命令
命令详解
- supervisord: 初始启动Supervisord,启动、管理配置中设置的进程;
- supervisorctl stop(start, restart) xxx,停止(启动,重启)某一个进程(xxx);
- supervisorctl reread: 只载入最新的配置文件, 并不重启任何进程;
- supervisorctl reload: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
- supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;
a. 管理进程例子
supervisord是通过 supervisorctl进行进程管理,由于目前没有添加任何需要管理的进程,所以 status 没有输出人和结果,接下来我们添加一个需要管理的进程 (以启动一个 celery 的 worker 为例)。
然后运行以下命令更新配置并启动进程:
supervisorctl reread
: 只更新配置文件supervisorctl update
: 只启动有改动的进程supervisorctl status
: 查看状态
我们看到 celery worker 已经被成功启动了。你可以使用不同的命令来控制进程的启动和关闭:
|
|
切记,每次修改或增删了配置文件, 都需要执行: supervisorctl update
。执行supervisord可以进入 supervisorctl 的 shell 界面,
二、Supervisord在Mac osx中的应用
在mac中启用supervisor需要借助launchctl, 启用后就可以借助supervisor启用其他相关的进程了。这里说下我的配置,supervisord进程和配置内容如下:
- conf: /usr/local/etc/supervisord.conf
- bin: /usr/local/bin/supervisord
配置文件/usr/local/etc/supervisord.conf
内容:
|
|
vim ~/Library/LaunchAgents/supervisord.plist
|
|
配置好后执行如下命令运行:
launchctl load ~/Library/LaunchAgents/supervisord.plist
三、扩展
以上内容,感谢如下博主分享: