Bash

ulimit PICKLE:“不允許操作”和“找不到命令”

  • November 10, 2019

我正在嘗試增加目前使用者的最大打開文件數

> 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

問題

  1. 如何增加ulimit?
  2. 為什麼會這樣?

使用 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

將軟限制提高到硬限制。

引用自:https://unix.stackexchange.com/questions/31679