项目场景:
python虚拟环境venv启动supervisor服务
一、类型一
unix:///var/run/supervisor.sock no such file
error: <class ‘FileNotFoundError’>, [Errno 2] No such file or directory: file: /home/zhaon/miniconda3/envs/abio_filesvr/lib/python3.9/site-packages/supervisor/xmlrpc.py line: 557
原因分析:
supervisor管理的服务未启动就查询
解决方案:
supervisord -c filesvr.conf
二、类型二
Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)
原因分析:
supervisor无权限开启一个HTTP server
查看filesvr.conf,发现有下面一行关于HTTP server的配置,发现没有权限在目录
/var/run
目录创建文件
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
解决方案:
变更file路径为一个可读写路径(且该路径权限为777),
sudo chmod -R 777 /var/log/supervisor
同时为让supervisorctl(利用sock文件开启与释放)管理服务,也需将路径变为
/var/log/supervisor
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; (use a unix:// URL for a unix socket)
结果展现:
[unix_http_server]
file=/var/log/supervisor/supervisor.sock ; (the path to the socket file)
[supervisorctl]
serverurl=unix:///var/log/supervisor/supervisor.sock ; (use a unix:// URL for a unix socket)
三、类型三
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord
原因分析:
路径
/var/log/supervisor
存在同名的supervisor.sock
文件,
解决方案:
删除同名文件或者更改文件启动名,因只我一个服务要启用,故采用删除法
rm -rf /var/log/supervisor/supervisor.sock
四、类型四
Unlinking stale socket /var/log/supervisor/supervisor.sock
原因分析:
因服务异常关闭或者其它原因不存在了,导致链接异常
解决方案:
unlink /var/log/supervisor/supervisor.sock
结束!
配置任务最直观的感受:
- 当以非root账户启动supervisor服务时,最常见的错误无非是无权限执行或访问。
- 当以root账户启动supervisor服务时,什么问题都不再是问题了