• Supervisor启动error: <class 'socket.error'>, [Errno 101] Network is unreachable


    全栈与架构 > 技术设计
     

    Supervisor启动error: <class 'socket.error'>, [Errno 101] Network is unreachable

     

    合作公司的MM今天送来第六份文档,我在开发之处留意并担心的问题最终还是被提出来了。文档中大多数为细节调整,重点问题集中在全站商品分类(goodcat)的增删改查和前端展开特效、current_item定位以及数据筛查。修改完成后上传到服务器时出现了问题,kill掉Supervisor后重启发现遇到了新问题。

    问题触发环境

    我在Linux(Centos)系统的服务器上部署Tornado实例的时候,启动Supervisor遇到的socket.error问题,

    项目部署是Supervisor + Apache完成的,关键参数配置:

    Supervisor:user=apache;

    Apache:

    ProxyRequests Off
        <Proxy *>
           Order deny,allow
           Allow from all
        </Proxy>
        ProxyPass / http://127.0.0.1:8899/
        ProxyPassReverse / http://127.0.0.1:8899/

    错误详细信息:

    error: <class 'socket.error'>, [Errno 101] Network is unreachable: file: /usr/local/lib/python2.7/socket.py line: 571

    解决方案

    通过查阅,我发现StackOverflow上kelorek的一个回答可以解决此类问题,It does work,thank you。(@kelorek)先看他的回答:

    You have to start supervisord before you can use supervisorctl. In my case:

        sudo supervisord -c /etc/supervisor/supervisord.conf
        sudo supervisorctl -c /etc/supervisor/supervisord.conf

    即通过配置文件来启动supervisor,然后再使用supervisorctl。所以我执行命令:

    # /usr/local/bin/supervisord –c /etc/supervisor/supervisor.conf

    其实到这里我的问题已经解决了,无需继续使用命令:supervisorct start yourappname开启tornado项目。

    Tips:题主的问题中提到的错误是:

    error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567

    Supervisor知识点补充

    supervisord & supervisorctl是Supervisor的两个可执行程序,其关系相当与Apache下的httpd & apachectl。

    • supervisord 是后台管理服务器, 用来依据配置文件的策略管理后台守护进程, 它会随系统自动启动;
    • supervisorctl 用于管理员向后台管理程序发送 启动(start)/重启(restart)/停止(stop) 等指令。

    =======分隔线,一下内容仅为随笔记录,可不看=========

    好吧,又无耻地水了一篇文章(记录操作错误类的文章在我看来确实有些应付),其实这并并不是我的本意。我在文章首段提到了,重点问题在分类的设计上。凑巧在前几天浏览高级Web架构师面试题时看到了一个同种类型的题目——“数据库设计范畴中的树形数据结构设计”。

    树形数据,主要关注的是:

    1. 如何将数据高效地以树形的形式展现给用户。
    2. 通过某个节点找到所有的父节点。
    3. 获取某个节点的所有的后继节点(包括子节点的子节点)

    树形数据结构设计我并不是第一次接触,之前开发商城系统时也让它折腾过。但是目前将它从无到有、设计完善也不是几分钟就能搞定的事儿,不容易!而且这只是上一批开发者挖的坑之一,尤其是Python + Mongodb还不是我的强项(我的怨言就是从这来的)。之前有篇文章《初试MongoDB数据结构设计及$in查询—多层级分类目录》,简单探讨在Python + Mongdb架构下设计category以及如何查询,以后会单独写篇文章深入研究总结。


    https://www.gznotes.com/supervisor-socket-error-errno-101/

  • 相关阅读:
    指针数组与数组指针
    209. 长度最小的子数组
    面试题 05.08. 绘制直线(位运算)
    1160. 拼写单词
    88. 合并两个有序数组
    80. 删除排序数组中的重复项 II(On)
    python自定义异常和主动抛出异常
    类的构造方法1(类中的特殊方法)
    python之判断一个值是不是可以被调用
    主动调用其他类的成员(普通调用和super方法调用)
  • 原文地址:https://www.cnblogs.com/du-jun/p/11434244.html
Copyright © 2020-2023  润新知