suppervisor
Supervisor安装与配置(linux/unix进程管理工具) Supervisor(Supervisor: A Process Control System)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
1. 安装
brew install supervisor
或则
pip2 install supervisor
此时 [python2]/bin 中多了一些命令 如 supervisor、supervisorctl、echo_supervidord_conf 可以直接全局运行
2. 配置
输出配置文件内容并重定向到 /etc/supervisord.conf 中
echo_supervisord_conf > /usr/local/etc/supervisord.conf
cd /usr/local/etc/
mkdir supervisor.d
ls
supervisor.d supervisord.conf supervisord.ini
3. 新建celery配置
sudo vim supervisor.d/celery_demo
写入一下内容:
[program:celery_demo]
command=celery -A tasks worker --loglevel=info
directory=/Users/merlon/demo/celery_demo
stdout_logfile=/Users/merlon/demo/celery_demo/logs/celery_demo.log
autorestart=true
redirect_stderr=true
4. 运行
supervisord -c /usr/local/etc/supervisord.ini
5. 常用命令
? supervisord, 初始启动Supervisord,启动、管理配置中设置的进程。
? supervisorctl stop programxxx 停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
? supervisorctl start programxxx 启动某个进程
? supervisorctl restart programxxx 重启某个进程
? supervisorctl stop groupworker 重启所有属于名为groupworker这个分组的进程(start,restart同理)
? supervisorctl stop all 停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
? supervisorctl reload 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
? supervisorctl update 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
可以使用--help查看命令更多的用法,我启动时遇到配置文件没有放到默认路径使用-c 参数执行