Menurut dokumentasi kernel , /proc/sys/file-max
adalah jumlah maksimum, jumlah global deskriptor file yang akan dialokasikan kernel sebelum tersedak. Ini adalah batas kernel, bukan pengguna Anda saat ini. Jadi Anda dapat membuka 590432, asalkan Anda sendirian di sistem siaga (mode pengguna-tunggal, tidak ada daemon yang berjalan).
Perhatikan bahwa dokumentasinya sudah usang: file telah proc/sys/fs/file-max
lama. Terima kasih kepada Martin Jambon karena menunjukkan ini.
Perbedaan antara batas lunak dan keras dijawab di sini, di SE . Anda dapat menaikkan atau menurunkan batas lunak sebagai pengguna biasa, asalkan Anda tidak melampaui batas keras. Anda juga dapat menurunkan batas keras (tetapi Anda tidak dapat menaikkannya lagi untuk proses itu). Sebagai superuser, Anda dapat menaikkan dan menurunkan batas keras dan lunak. Skema batas ganda digunakan untuk menegakkan kebijakan sistem, tetapi juga memungkinkan pengguna biasa untuk menetapkan batas sementara untuk diri mereka sendiri dan kemudian mengubahnya.
Perhatikan bahwa jika Anda mencoba menurunkan batas keras di bawah batas lunak (dan Anda bukan superuser), Anda akan EINVAL
kembali (Argumen Tidak Valid).
Jadi, dalam kasus khusus Anda, ulimit
(yang sama dengan ulimit -Sf
) mengatakan Anda tidak memiliki batas lunak pada ukuran file yang ditulis oleh shell dan subprosesnya . (itu mungkin ide yang bagus dalam banyak kasus)
Doa lain, ulimit -Hn
laporan tentang -n
batas (jumlah maksimum deskriptor file yang terbuka), tidak pada -f
batas, yang mengapa batas lembut tampaknya lebih tinggi dari batas keras. Jika Anda memasukkan ulimit -Hf
Anda juga akan mendapatkan 'tidak terbatas'.
/proc/sys/fs/file-max
.