supervisor常见报错[通俗易懂]

supervisor常见报错[通俗易懂]supervisor常见报错

大家好,又见面了,我是你们的朋友全栈君。

基本思路:

1.首先我们要明确问题出在supervisor上还是启动的程序上,可以用ps -ef | grep supervisord查看是否启动,在用ps查看自己的进程有没有启动;
2.确认下启动的supervisor配置文件是哪个,有的是/etc/supervisor/supervisord.conf,有的是/etc/supervisord.conf,以自己的为准,不要弄混;
3.推荐使用apt-get安装,其次是pip ,最后才是yum。不要问为什么,踩坑踩得。另外,尽量用supervisord 3.x以上的版本,2.x版本出问题概率大;
4.supervisord的日志在 /var/log/supervisor/supervisord.log,启动失败一般能再这里找到有用的信息

常用命令
  • 启动守护进程:supervisord -c /etc/supervisor/supervisord.conf
  • 重载配置:supervisorctl reload
具体报错分析

下面是三种常见的通用报错:

第一类:

报错信息:

error: <class 'socket.error'>, [Errno 2] No such file or directory: file: <string> line: 1

解决办法:
这个可能有多种原因,可能是已经启动过了也可能是没权限,解决步骤如下:

  1. 先要确认是否已经启动过了:’ps -ef | grep supervisord’

  2. 如果有的话先kill掉

  3. 运行下面命令:
    sudo touch /var/run/supervisor.sock
    sudo chmod 777 /var/run/supervisor.sock

  4. 再尝试重新启动:supervisord -c /etc/supervisord.conf(如果没有文件找个别人的配置拷贝过来或者运行echo_supervisord_conf > /etc/supervisord.conf)

第二类:

报错信息:

Error: .ini file does not include supervisorctl section

解决办法:
又是一个权限问题的,步骤:

  1. 先确保supervisord.conf中有[supervisord],[supervisorctl]有这两个基本模块,还有[program:XXX]自己程序的配置(可以在supervisord.conf也可以在/etc/supervisor/*.ini中)
  2. 最关键的两个命令:chmod +x /usr/bin/supervisord
    chmod +x /usr/bin/supervisorctl
    chmod +x /etc/supervisord.conf主要是把把相关文件都授权了
  3. 把supervisord杀掉后再次启动supervisord
第三类:

报错信息:

Exited too quickly (process log may have details)

如果前面的问题都解决了,但还是会遇到这个问题,恭喜你已经离胜利很近了,起码supervisord本身已经没什么问题了_

解决办法:

  1. 先确认[program:XXX]中自己的程序的command=<启动命令>和 directory=<运行命令的路径>没有问题,python是不是用的自己要的环境的python(比如虚拟环境的),log文件的文件夹是不是已经创建(没创建的话supervisor没权限生成log文件),以及改log文件是不是授权给所有用户了(可参考前面的解决办法chmod +x aaaaa.log)
  2. 确保用上面的配置中的command在指定路径可以直接运行不会报错,这时候一般就不会有什么问题了。这时候tail你自己的log文件一般就能看到log信息,启动失败报错的信息也会在你的log文件中,照着解决后supervisorctl reload就好了。
  3. 如果上面的命令确保可以跑,但还是没法正常运行,也看不到自己程序的报错(不然你就能根据报错解决问题了),那么恭喜,你遇到了跟我一样的情况。我的解决办法很诡异,尝试把[program:XXX]中的名字换成了一个跟启动命令不一样的另一个名字(不要太短),reload之后居然就可以跑了。。。。嗯,很不合常理,但是对我来说确实管用了。

可参考文章:
详解supervisor进程管理
supervisor 进程管理

原文:https://blog.csdn.net/kkevinyang/article/details/80539940

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105885.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月24日 下午2:40
下一篇 2022年4月24日 下午3:00


相关推荐

  • java运算符优先级排序

    java运算符优先级排序科技进步 源自每一次善意的分享运算符的优先级 从高到低 优先级描述运算符 1 括号 nbsp nbsp 2 正负号 nbsp nbsp 3 自增自减 非 nbsp nbsp nbsp nbsp nbsp nbsp 4 乘除 取余

    2026年3月18日
    2
  • 简易旋转倒立摆_180度旋转气缸调节角度

    简易旋转倒立摆_180度旋转气缸调节角度旋转倒立摆调节经验前言程序框架关于直立关于自动起摆前言近期在做2013年电赛控制类题目–简易旋转倒立摆装置,自己并不是自动化专业的学生,没有学过自动控制原理,倒立摆其实是一个十分经典的自动控制模型,我们只能是边做边学习,逐渐去了解倒立摆。我认为倒立摆有两个难点,一个是自动起摆一个是机械结构,其中自动起摆涉及到PID算法与运动方程的求解,而机械结构主要是尽量减小转动阻尼同时避免旋转时线的缠绕。…

    2022年8月18日
    9
  • 一个示例让你明白适配器模式

    一个示例让你明白适配器模式本文讨论适配器模式。适配器模式是23中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器。为了举这个例子,我还特意去京东上搜了一下电源转换器,确实看到了很多地方的标准不一样。我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是德国标准,是两项圆头的插头。

    2022年7月25日
    9
  • [从零开始学DeepFaceLab-4]: 使用-命令行八大操作步骤-第1步:命令行环境准备

    [从零开始学DeepFaceLab-4]: 使用-命令行八大操作步骤-第1步:命令行环境准备目录总体流程 步骤 1 命令行环境准备 1 1 命令 1 clearworkspa bat 必选 2 预备知识 2 1 根目录结构 2 2 internal 目录 2 3workspace 目录 命令行工作目录总体流程 步骤 1 命令行环境准备 1 1 命令 1 clearworkspa bat 必选 1 命令名称 从源视频中提取图片 1 clearworkspa bat 2 Windows 命令源代码 echooffecho

    2026年3月17日
    2
  • 用HTML+CSS代码制作3D旋转相册

    用HTML+CSS代码制作3D旋转相册手打代码:&amp;lt;!DOCTYPEhtml&amp;gt;&amp;lt;html&amp;gt;&amp;lt;headlang=&quot;en&quot;&amp;gt;&amp;lt;metacharset=&quot;UTF-8&quot;&amp;gt;&amp;lt;title&amp;gt;3D旋转&amp;lt;/title&amp

    2022年6月11日
    209
  • PLSQL 14.0.6 下载使用教程「建议收藏」

    PLSQL 14.0.6 下载使用教程「建议收藏」众所周知,PLSQL只是一个oracle第三方开发测试工具,它依赖oracle客户端搭配使用,但是oracle客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。第一步:PLSQL下载与安装PLSQL14.0.6下载地址:https://www.allroundautomations.com/registered-plsqldev/下载下来,除了安装路径更改一下,

    2022年5月7日
    106

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号