Skip to main content

IEC 应用程序无法再打开任何文件句柄。

重要

在更改系统上文件句柄的限制之前,应紧急考虑 Linux 系统上所有服务的后果。相反,我们建议找出泄漏的原因。

故障排除

. 文件句柄泄漏可能会导致以下影响:
  • 许可证状态丢失。一段时间后,WIBU 许可证会失效

  • 无法打开新文件。

Linux 进程的默认行为是允许最大数量的打开文件句柄。当一个进程达到这个限制时,就不能再打开新文件了。

你可以使用控制台命令检查系统的极限值:

ulimit -n

Linux 中的每个进程都有进程 ID,内核提供有关其文件/文件夹系统中每个进程的详细信息 procfs。这使您可以轻松确定一个进程在任何给定时间拥有的文件句柄的数量。

. 我们建议采取以下步骤来调查可能的文件句柄泄漏:
  1. 查找的进程 ID CODESYS 运行时环境。

    您可以使用标准的 Linux 工具来查找进程 ID CODESYS 运行时环境:

    • htop 通常在第一列 (PID) 中显示进程 ID。

    • top 通常在第一列 (PID) 中显示进程 ID。

    • 你可以组合 psgrep 用于快速搜索的命令:

      ps aux | grep codesyscontrol

    记下进程 ID,并在以下使用占位符 <pid> 的命令中使用它。

  2. 检查和监控文件句柄。

    现在列出中的条目 procfs 查看运行时进程的文件句柄。

    sudo ls -la /proc/<pid>/fd/

    4. 这可能如下所示
    _rtsl_img_iec_filehandle.png


    • 如果文件句柄是 “真实” 文件,则可以看到路径。其他文件句柄可能是套接字或类似的句柄。

    • 如果一个接一个地多次执行此命令,则可以观察文件句柄的数量是否在增加,以及哪些文件处于打开状态。

    • 这个 watch 命令会创建一个视图,该视图每 2 秒更新一次。

      watch sudo ls -la /proc/<pid>/fd/

这些操作可以帮助您监控打开的句柄,从而找出哪些文件可能参与文件句柄泄漏。