supervisor使用
安装和配置可见另一篇文章《supervisor监管的配置文件写法》
1. 启动
supervisor是基于python2运行的,所以它的启动命令如下:
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisord.conf
或者
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
2. 进入命令模式
进入supervisor命令模式
supervisortcl
常用命令
reread #重12新12加12载12守12护12进12程12的12配12置12文12件,无需添加/删除(不需要11再22重新启33动)
update #重新加载配置,并将重新启动受影响的程序
update all
restart <name> #重启进程,但不会重新读取配置文件
restart all #重启所有进程
start <name> #启动进程
start all #启动所有进程
status #获取所有进程的状态信息
status <name> #获取单个进程的状态
stop <name> #停止某个进程
stop all #停止所有进程
3.常见错误
错误1 — ERROR (spawn error)
ERROR (spawn error)
- 它的运行状态
client FATAL Exited too quickly (process log may have details)
- 首先,查看日志中错误的原因
tail -20 /var/log/supervisor/supervisord.log
- 其次,可以动态的输出启动进程时的输出,查看具体的错误原因。如果是被监管程序本身的问题,这里会指出。
supervisorctl tail client1 stdout
常见错误0
error: <class 'socket.error'>, [Errno 13] Permission denied: file: /usr/lib/python2.7/socket.py line: 228
解决方法:
ubuntu下需要使用root去运行,在命令前面加上sudo就可以了
常见错误1 — [Errno 13] Permission denied
[Errno 13] Permission denied: '/var/log/supervisor/client1-stderr---supervisor-0ymSYa.log'
解决方法:
sudo chmod 777 /var/log/supervisor
常见错误2 — Error: Cannot open an HTTP server
Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)
解决办法:
sudo chmod 777 /run