supervisor 常见错误及其解决方案

通过 supervisord -v 查看版本

1、进程日志权限错误

IOError: [Errno 13] Permission denied: '/var/log/supervisor/supervisord.log'

原因,/var/log/supervisor/supervisord.log没有写权限,赋予权限即可:

sudo chmod -R 777 /var/log/supervisor/supervisord.log

2、开启HTTP Server错误

Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13)

配置文件中 /var/run 文件夹,没有授予启动 supervisord 的相应用户的写权限。/var/run 文件夹实际上是链接到 /run,因此我们修改 /run 的权限

sudo chmod 777 /run

一般情况下,我们可以用 root 用户启动 supervisord 进程,然后在其所管理的进程中,再具体指定需要以那个用户启动这些进程。

3、运行日志权限问题

'INFO spawnerr: unknown error making dispatchers for 'app_name': EACCES'

修改日志文件的权限

sudo chmod 777 /usr/log/supervisor/supervisor.log
sudo chmod 777 /usr/log/supervisor/youAppName.log

4,指定运行太多问题,

 Exited too quickly (process log may have details)

有可能是当前文件已经运行

kill 调当前的进程,再试试运行

5,找不到supervisor==3.81等版本

明明你已经安装了supervisor,但是还是报错
pkg_resources.DistributionNotFound: The 'supervisor==3.1.3' distribution was not found and is required by the application

有可能是因为你没有python2中没有下载supervisor

sudo easy_install supervisor
或者 pip2 install supervisor

6,日志里报:couldn't setuid to 502: Can't drop privilege as nonroot user

错误日志

supervisor: couldn't setuid to 502: Can't drop privilege as nonroot user
supervisor: child process was not spawned
supervisor: couldn't setuid to 502: Can't drop privilege as nonroot user
supervisor: child process was not spawned
supervisor: couldn't setuid to 502: Can't drop privilege as nonroot user

解决方法

查看每个任务的配置文件的user配置项是否为运行supervisor服务用户。
比如:
我当前使用A用户登录系统并启动supervisor服务

supervisord -c etc/supervisord.conf

每个任务程序的运行用户设置成了B

cat files/old.ini
...
user=B
...

当supervisor服务启动时就会出现上面的错误。
然后将 任务程序的运行用户设置成A,就不会出错正常运行。

cat files/old.ini
...
user=A
...

supervisor 3.3.4 版本遇到的此问题解决方法

将supervisor 主配置文件个别配置项更改为下(更改root用户为当前用户,因为非root用户无法切换到root用户。)

[supervisord]
user=当前用户 ;如果supervisord启动的环境包含变量USER并且它设置为当前用户,您应该能够以user=%(ENV_USER)s任一用户身份运行。

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

在这里插入图片描述
第一步:去/var/run/supervisor中touch一个supervisor.sock文件 并chmod 777 supervisor.sock
第二步:kill掉所有之前的supervisor进程
在这里插入图片描述
第三步:“/usr/bin/python /usr/bin/supervisord -n -c /etc/supervisord.conf & ”重新启动supervisor

 

Supervisor是一个用于管理和监控进程的工具。它可以通过配置文件进行设置,并监控在其中定义的各个进程的运行状态。这些进程可以是拥有不同名称的子配置文件中定义的。主配置文件通常是supervisord.conf,而子配置文件可以放在supervisord.conf目录下的supervisord.d文件夹中。 要安装Supervisor,可以使用pip命令来安装,具体命令是"pip install supervisor"。安装完成后,在/usr/bin目录下会添加三个命令:echo_supervisord_conf用于生成一个配置文件示例,supervisorctl是客户端命令,supervisord是服务端命令。此外,在/etc目录下会创建一个supervisord.d目录用于存放子配置文件,还会有一个supervisord.conf配置文件。如果没有生成,可以使用命令"echo_supervisord_conf > /etc/supervisord.conf"来生成。 要启动Supervisor服务,可以使用命令"/usr/bin/supervisord -c /etc/supervisord.conf"。关于Supervisor的配置文件,可以在主配置文件supervisord.conf中进行设置,并在子配置文件中定义要监控的进程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Linux】Supervisor使用详解](https://blog.csdn.net/qq_32109917/article/details/120985481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Supervisor进程管理详解](https://blog.csdn.net/hanjinjuan/article/details/124619299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴国进

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值