Theo tài liệu kernel , /proc/sys/file-max
là số mô tả tập tin tối đa, tổng, toàn cầu mà kernel sẽ phân bổ trước khi bị nghẹt. Đây là giới hạn của kernel, không phải người dùng hiện tại của bạn. Vì vậy, bạn có thể mở 590432, miễn là bạn ở một mình trên một hệ thống nhàn rỗi (chế độ một người dùng, không có trình tiện ích nào đang chạy).
Lưu ý rằng tài liệu đã hết hạn: tệp đã được sử proc/sys/fs/file-max
dụng trong một thời gian dài. Cảm ơn Martin Jambon đã chỉ ra điều này.
Sự khác biệt giữa giới hạn mềm và cứng được trả lời ở đây, trên SE . Bạn có thể tăng hoặc giảm giới hạn mềm như một người dùng thông thường, miễn là bạn không vượt qua giới hạn cứng. Bạn cũng có thể hạ thấp giới hạn cứng (nhưng bạn không thể tăng lại giới hạn cho quy trình đó). Là siêu người dùng, bạn có thể tăng và giảm cả giới hạn cứng và mềm. Lược đồ giới hạn kép được sử dụng để thực thi các chính sách hệ thống, nhưng cũng cho phép người dùng thông thường đặt giới hạn tạm thời cho chính họ và sau đó thay đổi chúng.
Lưu ý rằng nếu bạn cố gắng hạ thấp giới hạn cứng dưới giới hạn mềm (và bạn không phải là siêu người dùng), bạn sẽ EINVAL
quay lại (Đối số không hợp lệ).
Vì vậy, trong trường hợp cụ thể của bạn, ulimit
(giống như ulimit -Sf
) nói rằng bạn không có giới hạn mềm đối với kích thước của các tệp được viết bởi trình bao và các quy trình con của nó . (đó có lẽ là một ý tưởng tốt trong hầu hết các trường hợp)
Gọi khác của bạn, ulimit -Hn
báo cáo tình hình -n
giới hạn (số lượng tối đa của file descriptor mở), không những -f
giới hạn, đó là lý do giới hạn mềm dường như cao hơn giới hạn cứng. Nếu bạn nhập, ulimit -Hf
bạn cũng sẽ nhận được 'không giới hạn'.
/proc/sys/fs/file-max
.