安装
安装python
brew install python
安装pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
安装supervisor
pip install supervisor
配置文件
生成默认的配置文件
echo_supervisord_conf > /etc/supervisord.conf
编辑配置文件 参考地址
附我的配置文件 在默认的配置文件后面添加
[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
安装完成后有两个可用的命令行supervisor
和supervisorctl
常见的命令如下:
命令
说明
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
查看日志
错误代码
ERROR (abnormal termination)
解决办法:supervisorctl tail programname
查看programname的具体日志信息
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
orsudo 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