ulimit
เป็นเชลล์ในตัวไม่ใช่คำสั่งภายนอก มันจะต้องสร้างขึ้นภายในเพราะมันทำหน้าที่ในกระบวนการเชลล์ตัวเองเช่นcd
: ข้อ จำกัด เช่นไดเรกทอรีปัจจุบันเป็นคุณสมบัติของกระบวนการเฉพาะที่
sudo bash -c 'ulimit -n 4096'
จะใช้งานได้ แต่จะเปลี่ยนขีด จำกัด สำหรับกระบวนการทุบตีที่เรียกใช้โดยsudo
เท่านั้นซึ่งจะไม่ช่วยคุณ
มีสองค่าสำหรับแต่ละขีด จำกัด : ฮาร์ด จำกัด และซอฟต์ จำกัด เฉพาะ root เท่านั้นที่สามารถเพิ่มขีด จำกัด ได้ยาก ทุกคนสามารถลดขีด จำกัด ฮาร์ดและ จำกัด นุ่มสามารถแก้ไขในทิศทางใดทิศทางหนึ่งด้วยข้อ จำกัด เพียงอย่างเดียวที่ไม่สามารถสูงกว่าขีด จำกัด ฮาร์ด soft limit เป็นค่าจริงที่สำคัญ
ดังนั้นคุณต้องจัดการว่ากระบวนการทั้งหมดของคุณมีขีด จำกัด ที่ยากสำหรับไฟล์ที่เปิดอย่างน้อย 4096 คุณสามารถเก็บ soft limit ไว้ที่ 1024 ก่อนเปิดตัวกระบวนการที่ต้องใช้ไฟล์จำนวนมากให้เพิ่ม soft limit ใน/etc/security/limits.conf
เพิ่มบรรทัด
paislee hard nofile 4096
paislee soft nofile 1024
ที่paislee
ชื่อของผู้ใช้ที่คุณต้องการเรียกใช้กระบวนการของคุณเป็น ในเชลล์ที่เปิดใช้งานกระบวนการที่คุณต้องการขีด จำกัด ที่สูงกว่าให้รัน
ulimit -Sn unlimited
เพื่อเพิ่มขีด จำกัด ซอฟท์เป็นขีด จำกัด ฮาร์ด
ulimit 4096
ไม่ทำงาน ฉันคิดว่า-n
ถูกต้อง เพื่อเป็นการพิสูจน์แนวคิดมันใช้งานได้ถ้าฉันเป็นครั้งแรกsudo su - root
(แต่จะเปลี่ยนเฉพาะรูท)