安装
-
安装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
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 admindb.shutdownServer()
强制:
kill -9 pid