【问题标题】:Finding total file descriptors throws exception查找总文件描述符会引发异常
【发布时间】:2016-03-05 10:12:46
【问题描述】:

我正在尝试查找总文件描述符,并发现 sigar api 允许获取这些信息。但是,在尝试执行以下操作时

Sigar sigar = new Sigar();
sigar.getProcFd(<pid>);

如果抛出以下异常,则将 pid 替换为实际进程:

 org.hyperic.sigar.SigarNotImplementedException: This method has not been implemented on this platform
at org.hyperic.sigar.SigarNotImplementedException.<clinit>(SigarNotImplementedException.java:28)
at org.hyperic.sigar.ProcFd.gather(Native Method)
at org.hyperic.sigar.ProcFd.fetch(ProcFd.java:30)
at org.hyperic.sigar.Sigar.getProcFd(Sigar.java:531)

从异常中可以清楚地看出,本机方法 -gather() 尚未在我的操作系统 (Mac OS X) 上实现/可用。我该如何解决?我尝试将“libsigar-universal64-macosx.dylib”添加到类路径中,但没有成功。

另外,我尝试像下面这样创建 ProcFd,而不是从 sigar 获取它:

ProcFd proc = new ProcFd();
System.out.println("Total FD: " + proc.getTotal());

在这种情况下,输出始终为 0。根据 api 文档,它看起来应该提供打开文件描述符的总数 (http://cpansearch.perl.org/src/DOUGM/hyperic-sigar-1.6.3-src/docs/javadoc/org/hyperic/sigar/ProcFd.html)。由于与上述相同的原因(即我的操作系统缺少实现),不确定它是否返回 0。对吗?

另外,想知道为什么当使用“sigar.getProcFd()”获取 ProcFd 时,它会引发上述异常。但是当使用“ProcFd proc = new ProcFd()”创建时它不会,但是 proc.getTotal() 总是返回 0?

【问题讨论】:

    标签: java macos sigar


    【解决方案1】:

    我最终在 shell 脚本中使用 lsof 而不是使用 sigar 库。从来没有让这个在mac上工作。我在 Linux 中尝试过,它没有任何问题。

    【讨论】:

      【解决方案2】:

      答案在文档 (http://cpansearch.perl.org/src/DOUGM/hyperic-sigar-1.6.3-src/docs/javadoc/org/hyperic/sigar/ProcFd.html) 中,根据您的发现:不支持 OSX。

      getTotal
      
      public long getTotal()
      Get the Total number of open file descriptors.
      Supported Platforms: AIX, HPUX, Linux, Solaris, Win32.
      
      System equivalent commands:
      
      AIX: lsof
      Darwin: lsof
      FreeBSD: lsof
      HPUX: lsof
      Linux: lsof
      Solaris: lsof
      Win32: 
      Returns:
      Total number of open file descriptors
      

      【讨论】:

        猜你喜欢
        • 2015-09-30
        • 2013-03-20
        • 2014-02-04
        • 1970-01-01
        • 2023-03-28
        • 2012-02-10
        • 1970-01-01
        • 2014-09-20
        • 1970-01-01
        相关资源
        最近更新 更多