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
相關文章
相關標籤/搜索