问题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)