สิ่งนี้เกิดขึ้นใน Ubuntu Release 12.04 (แม่นยำ) Kernel Linux 64 บิต 3.2.0-25- เสมือน
ฉันพยายามเพิ่มจำนวนไฟล์ที่อนุญาตให้ผู้ใช้เปิด สิ่งนี้มีไว้สำหรับแอ็พพลิเคชัน eclipse java ของฉันซึ่งขีด จำกัด 1024 ปัจจุบันไม่เพียงพอ
จากการโพสต์ที่ฉันพบฉันควรจะใส่บรรทัดลงไป
/etc/security/limits.conf เช่นนี้:
soft nofile 4096
hard nofile 4096
เพื่อเพิ่มจำนวนไฟล์ที่อนุญาตให้เปิดสำหรับผู้ใช้ทั้งหมด
แต่นั่นไม่ได้ผลสำหรับฉันและฉันคิดว่าปัญหาไม่เกี่ยวข้องกับไฟล์นั้น
สำหรับผู้ใช้ทั้งหมดขีด จำกัด เริ่มต้นคือ 1024 โดยไม่คำนึงถึงสิ่งที่อยู่ใน /etc/security/limits.conf (ฉันรีบูตเครื่องหลังจากเปลี่ยนไฟล์นั้น)
$ ulimit -n
1024
ตอนนี้แม้จะมีรายการใน /etc/security/limits.conf ฉันไม่สามารถเพิ่มได้:
$ ulimit -n 2048
-bash: ulimit: เปิดไฟล์: ไม่สามารถแก้ไขข้อ จำกัด : ไม่อนุญาตการดำเนินการส่วนที่แปลกคือฉันสามารถเปลี่ยนขีด จำกัดลงแต่ไม่สามารถเปลี่ยนขึ้นไปข้างบน - แม้จะกลับไปเป็นตัวเลขที่ต่ำกว่าขีด จำกัด เดิม:
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
ในฐานะที่เป็น root ฉันสามารถเปลี่ยนขีด จำกัด นั้นเป็นอะไรก็ได้ที่ฉันต้องการขึ้นหรือลง ดูเหมือนจะไม่สนใจเกี่ยวกับขีด จำกัด ทั้งระบบที่คาดคะเนใน / proc / sys / fs / file-max
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
แต่แม้ฉันจะได้รับ eclipse ให้ทำงานในฐานะ root แอปพลิเคชันของฉันยังคงทำงานล้มเหลวเนื่องจากข้อยกเว้น "Too Many Open File"!
จนถึงตอนนี้ฉันยังไม่พบวิธีเพิ่มขีด จำกัด การเปิดไฟล์สำหรับผู้ใช้ที่ไม่ใช่รูท
ฉันควรทำสิ่งนี้อย่างถูกต้องอย่างไร? ฉันได้ดูโพสต์อื่น ๆ หลายแห่ง แต่ไม่มีโชค!
/etc/security/limits.conf
คุณอาจต้องออกจากระบบและกลับเข้ามาก่อนจึงจะสามารถใช้ขีด จำกัด สูงสุดใหม่ได้ ฉันทำสิ่งนี้และรู้สึกงุนงงเมื่อulimit -Hs
ยังแสดง 1,000 เมื่อฉันเพิ่งยกเป็น 1000000! จากนั้นฉันออกจากระบบและกลับเข้ามาและ ulimit แสดงจำนวนเงินใหม่