首页 > 其他分享 >supervisor使用报错解决

supervisor使用报错解决

时间:2024-10-17 11:31:53浏览次数:6  
标签:supervisor supervisord sock var 报错 解决 run log

常用命令

supervisorctl status 查看状态
supervisorctl reload 重新载入配置文件
supervisorctl start all/ftp 启动所有/指定的程序进程
supervisorctl stop all/frp 关闭所有/指定的程序进程

一.简化后的supervisord.conf配置文件内容:

[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)

[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.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=/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false              ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = supervisor.d/*.conf

 注意 所有需要用supervisor管理的服务放在/etc/supervisor.d/目录下;

supervisor开机自启

1、首先执行命令:systemctl is-enabled supervisord ,结果如下图:提示尚未为supervisor配置开机启动

2、在shell里执行 vim /lib/systemd/system/supervisord.service 编辑开机启动时执行的脚本如下

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
RuntimeDirectory=supervisor
RuntimeDirectoryMode=755

[Install]
WantedBy=multi-user.target

注意:ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf 一定要这样写,supervisor安装完默认会在/etc/supervisord.conf 产生

启动程序

systemctl enable supervisord

验证一下是否为开机启动:

systemctl is-enabled supervisord

二. “supervisor.sock no such file”的解决方法

 

1:去/run/supervisor中touch一个supervisor.sock文件 并chmod 777 supervisor.sock
2:kill 掉所有之前的supervisor进程
3:启动supervisor

<!--启动-->
systemctl start supervisor

supervisord -c /etc/supervisord.conf

<!--关闭-->
systemctl stop supervisor

重新启动supervisor

三:Error: Cannot open an HTTP server: socket.error reported errno.ENOENT (2)

supervisord -c /etc/supervisord.conf 启动时报错

Error: Cannot open an HTTP server: socket.error reported errno.ENOENT (2)
For help, use /usr/bin/supervisord -h

原因,默认配置的目录不存在, 手动创建一个就好了**mkdir /run/supervisor**

四: Unlinking stale socket /tmp/supervisor、unix:/run/supervisor/supervisor.sock no such file

supervisor出现Unlinking stale socket /tmp/supervisor、unix:/run/supervisor/supervisor.sock no such file。遇到以上类似的问题,可以通过以下步骤得到解决。

1、修改配置文件

vim supervisord.conf
这里把所有的/tmp路径改掉

/tmp/supervisor.sock 改成/var/run/supervisor.sock,
/tmp/supervisord.log 改成/var/log/supervisor.log,
/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自动清掉。

样例如下:

[unix_http_server]
file=/var/run/supervisor/supervisor.sock ; the path to the socket file

[supervisord]
logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log

pidfile=var/run/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid

[supervisorctl]
serverurl=unix:///run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket

2、修改权限

sudo chmod 777 -R /run
sudo chmod 777 -R /var

如果没改,启动可能会报错 IOError: [Errno 13] Permission denied: ‘/var/log/supervisord.log’

3、创建supervisor.sock

sudo touch /var/run/supervisor/supervisor.sock
sudo chmod 777 /var/run/supervisor/supervisor.sock
sudo chmod 777 -R /var/run

4、添加supervisor.sock链接

unlink /var/run/supervisor/supervisor.sock

5、启动supervisord

注意stop之前的实例或杀死进程

supervisord
或者
supervisord -c /home/Nox/conf/nox/supervisord.conf

五:Exited too quickly (process log may have details)

使用supervisor监控程序查看状态总是报Exited too quickly (process log may have details)

报这个错的原因很简单,用supervisor监控程序,但是使用的是自己的方法启动程序,那当然不会监控成功,正确的做法是用supervisor重启。

六:unix:///run/supervisor/supervisor.sock refused connection

此时正确的做法是,应该重新指定配置文件,这样就能正确的生成一个sock文件

supervisord -c /etc/supervisord.conf

 

 

 

 

 

 

 

 

 

 

标签:supervisor,supervisord,sock,var,报错,解决,run,log
From: https://www.cnblogs.com/hahahayang/p/18471753

相关文章

  • 【Linux】<互斥量>解决<抢票问题>——【多线程竞争问题】
    前言大家好吖,欢迎来到YY滴Linux系列,热烈欢迎!本章主要内容面向接触过C++的老铁主要内容含:欢迎订阅YY滴C++专栏!更多干货持续更新!以下是传送门!YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》......
  • 解决WebBrowser背景不能透明的问题
    在WPF中使用WebBrowser控件时,WebBrowser是一个单独绘制句柄,除了显示层级更高外,还不支持透明。在我前面的文章中,解决了不规则窗口下,将WebBrowser显示出来。https://www.cnblogs.com/zhaotianff/p/18408345但是在页面未加载出来之前,能看到短暂的白屏情况。一开始我查阅了各种资......
  • 分布式事务解决方案(一):事务的基本概念
    如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”、“收藏”,你的支持永远是我前进的动力~~~一、事务的基本概念事务是确保数据库操作一致性的重要机制,而根据其涉及的资源和系统结构的不同,可以分为本地事务和分布式事务两种类型。事务:访问并更新......
  • python系列&deep_study系列:【已解决】Failed to initialize NVML: Driver/library ver
    【已解决】FailedtoinitializeNVML:Driver/libraryversionmismatchNVMLlibraryversion:535.161【已解决】FailedtoinitializeNVML:Driver/libraryversionmismatchNVMLlibraryversion:535.161问题描述原因分析和解决当我把这个问题喂给`chatgpt`的时......
  • 打开游戏缺少msvcp110.dll?游戏msvcp110.dll丢失的解决方法
    当我们沉浸在游戏世界中时,突然出现“msvcp110.dll丢失”这样的错误提示,无疑会让游戏体验大打折扣。这个问题通常是由于MicrosoftVisualC++RedistributablePackage未正确安装或损坏所致。msvcp110.dll是该包中的一个关键组件,许多游戏和应用都需要它来正常运行。下面一......
  • 基于VTD的AR-HUD仿真测试解决方案
    智能座舱是当前车辆智能化趋势的重要应用领域,HUD是将车速、导航等重要行车信息投影到挡风玻璃上,大大提升了安全性和体验感。AR-HUD是在HUD的基础上融入AR功能,在看到的真实世界的基础上叠加数字影像图层,将HUD显示信息与驾驶环境融为一体。当前,越来越多的汽车厂商更注重人机交互体验......
  • 解决WPF WebBrowser当前页面的脚本错误问题
    因为会有用户要求,需要将客户端体积最小化,不能使用新的浏览器控件,只能使用WebBrowser。而WebBrowser是IE内核的,现在很多js的API已经不能识别了。所以会报脚本错误,类似下面这样 解决方法的原理:WebBrowser内部是一个InternetExplorer实例,对应的是IWebBrowser2实例。IWebBrowse......
  • 全域本地服务商抽佣系统解决跨区域代理运营商抽佣问题?
    全域本地服务商抽佣系统是为了解决跨区域抽佣问题而设计的,它允许商户在多个平台和地区进行销售,并通过一个统一的系统进行佣金的抽取和管理。这种系统通常具备以下特点:跨平台整合:能够与多个线上平台如抖音团购、快手等进行无缝对接,实现资源的有效整合和共享。实时抽佣:确保商户......
  • 使用Python解决化学问题的实用指南
    ✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。......
  • CtsBiometricsTestCases 测试fail,解决方法。
    平台:高通C6490,android13测试结果:arm64-v8a CtsBiometricsTestCasesTestResultDetailsandroid.server.biometrics.BiometricActivityTests#testBiometricOrCredential_credentialButtonInvoked_biometricNotEnrolledfailjava.lang.AssertionError:AuthSessionState......