我继承了一些代码:进程生成WAITFOR()问题,并打开文件限制
Process p = new ProcessBuilder("/bin/chmod", "777", path).start();
p.waitFor();
基本上,是一些古老的和高度巫术基于原因在磁盘上存储键/值对的文件。我真的不想进入它。
不过,我留下了一堆IO异常:
Exception :Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
Message: Cannot run program "/bin/chmod": java.io.IOException: error=24, Too many open files
而且一帮我的意思是在10K的领域 - 数以百万计
给我的感觉的WAITFOR电话是停止这些从等待进程完成并退出,但我认为chmod在文件实际关闭之前返回结果。有谁知道这是否会成为这些例外的原因?
我的另一个倾向是,成千上万的文件的打开和关闭在java端没有足够快地发生,并且还有其他事情正在发生,也许类似于某种形式的文件缓冲区不是当fw.close()被调用时被清除。
我对Java很新,这是一个地狱奇怪的,让我难住。 (很高兴该应用程序仍然以某种方式运行..后吐出一个非常大的日志文件是)
其他人可以想到一种方法来解决这个问题,清理缓冲区或增加文件打开限制的东西,jvm可以保持自己(假设这是问题)
什么是您的目标操作系统(和版本)。看到这个:http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2007-02/msg00873.html – 2009-07-15 06:21:11
debian,它似乎被清除出uname。将是最新的稳定。 – Louis 2009-07-15 21:24:58