如何处理错误:系统中打开的文件太多?

5 linux php shell cron

我正在运行一个 cron 并输出到我的 id 并作为输出低于:

/bin/sh: /usr/bin/php: 系统中打开的文件太多

Cron 每 5 分钟运行一次。

已检查/var/logs/cron并每 5 分钟执行一次 cron。

站点在服务器上运行良好。

phi*_*hag 8

这意味着您的系统在您的 php 或其他应用程序中用完了文件句柄。确保关闭您打开的任何文件以释放文件句柄。

对于正在运行的每个程序的句柄数,使用(以 root 身份):

for p in $(ps -A -o pid); do
    nh=$(ls /proc/$p/fd  2>/dev/null | wc -l) &&
    exe=$(readlink -f /proc/$p/exe  2>/dev/null) &&
    echo "$p ($exe): $nh"
done
Run Code Online (Sandbox Code Playgroud)

要获得更详细的输出,请使用lsof.

您还可以通过修改/etc/security/limits.conf(影响更改为/proc/sys/fs/file-max)来增加可能的系统文件句柄的数量,并使用 减少当前终端会话的数量ulimit -n