🧩 问题描述线上生产环境中,Supervisor 用于守护多个 PHP 脚本任务(共计 310 个)。这些脚本长期运行,一直有正常的日志输出。然而在某天突然发现:某任务的日志输出中断;执行 supervisorctl status 显示任务状态为 RUNNING,没有异常;但实际进程未运行、无任何日志产出;尝试 supervisorctl restart 无效,任务仍然假运行,没有报错。同时...
在使用 supervisord 管理大量服务时,笔者遇到了一个奇怪的问题:当任务数量接近 200 个时,新的服务启动会失败,而 supervisor 本身没有明确报错信息。经过排查,最终确认是系统资源限制(如打开文件数、进程数)导致的问题,并通过调整配置成功解决。💥 问题描述当 supervisord 启动约 200 个任务之后:新增的服务(program)无法正常启动日志中没有明显报错,偶...
今天调整生产环境 supervisord 配置 , 启动 inet_http_server 配置# systemctl restart supervisord我在重启服务器前 , 增加了一些配置在 /etc/supervisord.d/. 执行后抛错如下 :Job for supervisord.service failed because the control process exi...
场景描述Supervisor 脚本定时重启脚本任务, 任务中存在多个子进程, 重启服务基本都是能一波带走所有子进程.但这次发现有个服务重启失败, 查看原因是存在子进程未kill掉, 子进程占用服务端口, 重启服务端口被占用最后服务BACKOFF了, 原因就是子进程没杀掉, 莫得办法. 下面配置也都是有的,因为之前踩过坑.没想到还是有问题.;使用supervisorctl停止时,子进程也会一起...
Linux 中的 nofile 设置Linux 系统通过 rlimit 来对一个进程可以使用的计算机资源进行限制,其中 nofile 表示单个进程可以打开的文件句柄数,默认值为 1024。 我们知道,Linux 系统下一切都是文件,这不仅包括了常规的文件,还包括 socket, pipe 等等,对于一些较大的应用,如数据库,Web 服务器等,1024 这个限制肯定是不够的。所以一般在初始化新...