supervisor 监控redis & mongodb

安装

  1. 安装python
    brew install pythonhtml

  2. 安装pip
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.pypython

  3. 安装supervisor
    pip install supervisorredis

配置文件

  1. 生成默认的配置文件
    echo_supervisord_conf > /etc/supervisord.conf mongodb

  2. 编辑配置文件 参考地址bootstrap

  3. 附个人配置文件 在默认的配置文件后面添加vim

[supervisord]
nodaemon=true
[program:redis]
command=/usr/local/bin/redis-server /usr/local/etc/redis.conf
autostart=true
autorestart=true
startsecs=3

[program:mongod]
command=/usr/local/bin/mongod --dbpath /Users/weixuan/Database/mongodbdata
autostart=true
startsecs=3
autorestart=true

基本使用

Supervisord安装完成后有两个可用的命令行supervisorsupervisorctl
常见的命令以下:ui

命令 说明
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都不会自动重启

常见命令

supervisorctl tail programname 查看programname的日志
supervisorctl tail redis 查看日志this

错误代码

ERROR (abnormal termination)命令行

解决办法:
supervisorctl tail programname 查看programname的具体日志信息rest

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

解决办法:

sudo unlink /tmp/supervisor.sock
or
sudo unlink /var/run/supervisor.sock

gave up: redis entered FATAL state, too many start retries too quickly

解决办法:

修改redis.conf的daemonize为no

brew安装的redis,配置文件在 /usr/local/etc/redis.conf

小技巧:vim查找

# 要自当前光标位置向上搜索
/pattern
#pattern   表示要搜索的特定字符序列
# 要自当前光标位置向下搜索 
?pattern

# 精确查找
# 要查找单个的   place,请键入该单词,并在其先后各加一个空格
 /   place

其它

终止mongodb

正常:

use admin
db.shutdownServer()

强制:

kill -9 pid
相关文章
相关标签/搜索