Bash
ulimit PICKLE:“不允許操作”和“找不到命令”
我正在嘗試增加目前使用者的最大打開文件數
> ulimit -n 1024
我嘗試按如下方式增加和失敗
> ulimit -n 4096 bash: ulimit: open files: cannot modify limit: Operation not permitted
所以我做自然的事情並嘗試在臨時許可下執行,但失敗了
> sudo ulimit -n 4096 sudo: ulimit: command not found
問題
- 如何增加ulimit?
- 為什麼會這樣?
使用 Fedora 14
ulimit
是內置的shell,而不是外部命令。它需要內置,因為它作用於 shell 程序本身,例如cd
:限制,就像目前目錄一樣,是該特定程序的屬性。
sudo bash -c 'ulimit -n 4096'
會起作用,但它會改變sudo
僅由呼叫的 bash 程序的限制,這對您沒有幫助。每個限制有兩個值:硬限制和軟限制。只有root才能提高硬限制;任何人都可以降低硬限制,並且可以在任一方向修改軟限制,唯一的限制是它不能高於硬限制。軟限制是重要的實際值。
因此,您需要安排所有程序對打開文件的硬限制至少為 4096。您可以將軟限制保持在 1024。在啟動需要大量文件的程序之前,請提高軟限制。在
/etc/security/limits.conf
中,添加行paislee hard nofile 4096 paislee soft nofile 1024
paislee
您要執行程序的使用者的名稱在哪裡。在啟動您想要更高限制的程序的 shell 中,執行ulimit -Sn unlimited
將軟限制提高到硬限制。