首先发现这个错误,恭喜,都是一个问题造成的,那就是supervisor 里面的sock 文件 丢失造成的。
以下是解决过程:
首先找到你的服务器supervisor.conf文件,我这边是两个文件 一个是supervisord.conf 在/etc/supervisor/supervisord.conf
vim进入然后修改:
这几个配置内容项,如果你使用的是apt-get install supervisor
安装的 默认给你配置好的了。
但是需要注意 如果logfile 以及 file 还有 pidfile 文件路径在tmp里面 推荐修改到磁盘。tmp里面很容易被系统删除
那还有另外一个conf文件是怎么造成的呢??
是的 你没看错,就是来自这句安装代码,如果以及安装了 /etc/supervisord.conf
的小伙伴 ,请一定要去修改 里面的conf配置项
文件路径:/etc/supervisord.conf
修改内容同理,跟之前的 /etc/supervisor/supervisord.conf相同。
[unix_http_server]
;file=/tmp/supervisor.sock ; (the path to the socket file)
file=/var/run/supervisor.sock ; 修改为 /var/run 目录,避免被系统删除
;chmod=0700 ; socket file mode (default 0700)
;chown=nobody:nogroup ; socket file uid:gid owner
;username=user ; (default is no username (open server))
;password=123 ; (default is no password (open server))
...
[supervisord]
;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile=/var/log/supervisor/supervisord.log ; 修改为 /var/log 目录,避免被系统删除
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
;pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
pidfile=/var/run/supervisord.pid ; 修改为 /var/run 目录,避免被系统删除
...
[supervisorctl]
; 必须和'unix_http_server'里面的设定匹配
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=unix:///var/run/supervisor.sock ; 修改为 /var/run 目录,避免被系统删除
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
;username=chris ; should be same as http_username if set
;password=123 ; should be same as http_password if set
...
然后记得保存,最后执行:
supervisorctl update
让配置更新一下。然后在执行代码就不会报错了。
最后附上常用命令:
- 重新启动配置中的所有程序
supervisorctl reload
- 启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
- 查看正在守候的进程
supervisorctl status
- 停止某一进程 (program_name=你配置中写的程序名称)
pervisorctl stop program_name
- 重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
- 停止全部进程
supervisorctl stop all