echo -n "Max open files=20:20" > /proc/$pid/limits
...berfungsi di RHEL5.5 dan RHEL6.7.
Perhatikan bahwa "-n" adalah wajib; baris baru yang tertinggal akan menghasilkan keluhan tentang argumen yang tidak valid.
Pilihan lainnya adalah dengan menggunakan perintah prlimit (dari paket util-linux). Misalnya jika Anda ingin menyetel jumlah maksimum file terbuka untuk proses yang sedang berjalan ke 4096:
prlimit -n4096 -p pid_of_process
Anda dapat menggunakan gdb, membobol proses, memanggil syscall yang disebutkan di atas untuk menaikkan batas yang Anda minati, lalu melanjutkan pekerjaan dan keluar dari gdb. Saya telah mengedit berbagai hal dengan cepat dengan cara ini beberapa kali.
Aplikasi Anda tidak akan mati, tetapi hanya berhenti sejenak saat Anda melakukan panggilan. jika Anda cepat (atau membuat skripnya!), kemungkinan besar tidak akan terlihat.
Sebagai administrator sistem :/etc/security/limits.conf
file mengontrol ini di sebagian besar instalasi Linux; ini memungkinkan Anda untuk menetapkan batas per pengguna. Anda akan menginginkan baris seperti myuser - nofile 1000
.
Dalam proses :Panggilan getrlimit dan setrlimit mengontrol sebagian besar batas alokasi sumber daya per proses. RLIMIT_NOFILE
mengontrol jumlah maksimum deskriptor file. Anda memerlukan izin yang sesuai untuk memanggilnya.