问题 1 refused connection
问题景象
$ supervisorctl -c /root/ppe-detection/supervisord.conf
unix:///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.conf
Unlinking stale socket /{some_dir}/supervisor.sock
问题剖析
它说正在解除连贯旧 socket,那么帮它间接解除就好了。
问题解决
$ sudo supervisord -c supervisord.conf
Unlinking 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)