Tôi đã thừa hưởng một số mã:Process Builder WAITFOR() phát hành và mở tập tin hạn chế
Process p = new ProcessBuilder("/bin/chmod", "777", path).start();
p.waitFor();
Về cơ bản, có đối với một số lý do dựa voodoo cổ và đánh giá cao để lưu trữ cặp khóa/giá trị trên đĩa dưới dạng file. Tôi không thực sự muốn đi vào nó.
Tuy nhiên, tôi đang trái với một loạt các trường hợp ngoại lệ 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
Và bằng một bó Ý tôi là trong cõi 10k - hàng triệu
tôi nhận được những cảm nhận cuộc gọi WAITFOR là để ngăn chặn những điều này xảy ra khi chờ quá trình hoàn thành và thoát ra, tuy nhiên tôi nghĩ rằng chmod sẽ trả về kết quả trước khi tệp thực sự bị đóng. Có ai biết nếu đó sẽ là nguyên nhân của những ngoại lệ này?
Độ nghiêng khác của tôi là việc mở và đóng hàng nghìn tệp không diễn ra đủ nhanh trên đầu java và có điều gì đó khác đang xảy ra, có thể giống như vậy có một số dạng đệm tệp không phải bị xóa khi fw.close() đang được gọi.
Tôi khá mới đối với java và đây là một điều quái dị khiến tôi bối rối. (sẵn sàng ứng dụng vẫn chạy bằng cách nào đó .. sau khi khạc ra một tệp nhật ký rất lớn)
Có thể ai khác nghĩ ra cách để giải quyết vấn đề này, xóa bộ đệm hoặc tăng các tệp mở giới hạn vào thứ gì đó mà jvm có thể theo kịp với chính nó (giả sử đó là vấn đề)
Hệ điều hành đích (và phiên bản) của bạn là gì.Xem này: http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2007-02/msg00873.html –
debian, có vẻ như nó đã bị xóa khỏi sự không rõ. sẽ ổn định mới nhất. – Louis