问题1 refused connection
问题景象
$ supervisorctl -c /root/ppe-detection/supervisord.confunix:///root/supervisor.sock refused connection
起因剖析
supervisor 次要蕴含2个组件(理论还有别的):
- supervisord
主过程,负责管理过程的server,它会依据配置文件创立指定数量的应用程序的子过程,治理子过程的整个生命周期,对crash的过程重启,对过程变动发送事件告诉等。 - supervisorctl
客户端的命令行工具,提供一个相似shell的操作接口
每次应用 supervisorctl,须要先保障supervisord失常运行。
解决办法
# 1. 须要把之前开启的对于supervisor的都kill掉,先查看supervisor(自身也是基于python的)和其运行的python过程$ ps aux | grep python# kill能够上面这条指令,把supervisor和其运行的python过程全杀了$ ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9# 2. 从新开启supervisord$ sudo supervisord -c supervisord.conf# 3. 如果没有报错,则能够应用supervisorctl了$ supervisorctl
问题2 unlinking stale socket
问题景象
$ sudo supervisord -c supervisord.confUnlinking stale socket /{some_dir}/supervisor.sock
问题剖析
它说正在解除连贯旧socket,那么帮它间接解除就好了。
问题解决
$ sudo supervisord -c supervisord.confUnlinking stale socket /{some_dir}/supervisor.sock# 应用unlink指令,把下面这个supervisor.sock的门路复制下来$ unlilnk /{some_dir}/supervisor.sock# 而后就能够失常应用了$ sudo supervisord -c supervisord.conf$ supervisorctl
reference
supervisor原理及如何应用
linux下3种高效Kill掉所有python过程的办法(包含编写运行脚本 .sh)