Oke, akhirnya saya menemukan ini. Batasan yang saya tetapkan di /etc/security/limits.conf
sedang diterapkan, tetapi tidak diterapkan pada login grafis. Ini dapat diverifikasi seperti ini dari jendela terminal:
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
Lebih banyak penelitian membawa saya ke laporan bug ini, yang membuat saya diarahkan ke arah yang benar. Untuk mengubah batas yang digunakan oleh shell login, kita perlu menambahkan baris berikut ke /etc/systemd/user.conf
:
DefaultLimitNOFILE=65535
Perubahan itu berhasil, tetapi hanya memengaruhi batas lunak. (Membiarkan kami dibatasi dengan batas keras 4096 masih.) Untuk mempengaruhi batas keras juga, kami harus memodifikasi /etc/systemd/system.conf
dengan perubahan yang sama.
Perubahan yang saya buat di /etc/pam.d
tidak perlu. Setidaknya di Ubuntu, ini sudah berfungsi. Selain itu, tidak perlu mengubah setelan untuk root
dan *
di limit.conf. Mengubah batas untuk mkasberg
sudah cukup, setidaknya untuk kasus penggunaan saya.
Dalam Ringkasan
Jika Anda ingin meningkatkan batas yang ditunjukkan oleh ulimit -n
, Anda harus:
-
Ubah
/etc/systemd/user.conf
dan/etc/systemd/system.conf
dengan baris berikut (ini menangani login grafis):DefaultLimitNOFILE=65535
-
Ubah
/etc/security/limits.conf
dengan baris berikut (ini menangani proses masuk non-GUI):mkasberg hard nofile 65535 mkasberg soft nofile 65535
-
Nyalakan ulang komputer Anda agar perubahan diterapkan.
Tidak perlu mengubah apa pun di /etc/security/limits.conf
file, diabaikan jika Anda menggunakan systemd.
(mereproduksi jawaban yang dimodifikasi untuk pertanyaan lain di jaringan...)
Alternatif bagi mereka yang memilih untuk tidak mengedit /etc/systemd/system.conf
default dan /etc/systemd/user/conf
file:
-
buat file baru
/etc/systemd/system.conf.d/limits.conf
dengan konten ini:[Manager] DefaultLimitNOFILE=65535
-
jalankan
systemctl daemon-reexec
sebagai root -
keluar dan masuk lagi
-
periksa batas baru Anda dengan
ulimit -n
.
Lihat systemd-system.conf
halaman manual untuk detail.
TL;DRI merasa perlu untuk memusatkan jawaban, sehingga lebih mudah ditemukan. Butuh waktu lama bagi saya untuk menyatukan semua bagian agar berfungsi dengan benar ...
Ada 2 lokasi yang harus dipertimbangkan.
-
sesi GUI
$ grep DefaultLimitNOFILE /etc/systemd/system.conf DefaultLimitNOFILE=65535
atau lebih baik di sini:
$ grep NOFILE /etc/systemd/system.conf.d/limits.conf DefaultLimitNOFILE=65535
-
lingkungan shell
$ grep nofile /etc/security/limits.conf user soft nofile 65535 user hard nofile 65535`
atau lebih baik di sini:
$ grep nofile /etc/security/limits.d/user.conf user soft nofile 65535 user hard nofile 65535
-
Setelah mengubah setelan pada file di atas, reboot lalu periksa batasannya dengan:
ulimit -n -Hn -Sn