2010-06-24 162 views
20

當我試圖在RedHat EL5上安裝軟件時,我得到的錯誤是軟/硬nofile的期望值是4096,而默認值是1024.我設法增加數字,但我不知道參數是什麼。他們是否提到軟鏈接和硬鏈接?什麼是「軟/硬nofile」在Linux上的意思

我改變它的方法是:

A)修改在/etc/security/limits.conf

user soft nofile 5000 
user hard nofile 6000 

B)修改將/etc/pam.d/system-auth

session required /lib/security/$ISA/pam_limits.so 

C)修改/etc/pam.d/login文件

session required pam_limits.so 

進行更改後(切換到root)。看起來我必須重新啓動機器才能生效。但是有些帖子在網上說它應該在改變之後立即生效。希望有人能澄清它。

回答

31

這些是:一個進程可能一次打開的文件數量的「軟」和「硬」限制。兩者都限制相同的資源(與硬鏈接或任何其他內容無關)。不同之處在於:稍後可以更改軟限制,直到硬限制值,這些限制都可以通過運行進程來限制,而硬限制只能降低 - 進程無法通過增加硬限制來分配更多資源(運行的進程除外以超級用戶權限(以root身份))。

類似的限制可以用於其它系統資源設置爲:系統內存,CPU時間等見setrlimit(2)手冊或shell的ulimit內置的命令(例如,在bash(1)手冊頁

+4

一個小小的例外是,作爲'root'運行的進程可能會增加硬限制以及它們的軟限制。 – 2010-06-24 06:48:28

+0

感謝提醒。我已經更新了我的答案。 – 2010-06-24 07:06:08

4

描述。不需要重新啓動,但只有在/lib/security/pam_limits.so運行時纔會處理/etc/security/limits.conf,這是在登錄時進行的,並且值由子進程繼承。在新登錄之後,該登錄將繼承指定的值

+0

感謝您的澄清 – 2010-06-24 17:59:41

1

另外,一些發行版包括/etc/security/limits.d其中限制配置的「片段」可以放置。您可以創建文件,比如這個:

$ ll /etc/security/limits.d/ 
-rw-r--r--. 1 root root 191 Aug 18 10:26 90-nproc.conf 
-rw-r--r-- 1 root root 70 Sep 29 12:54 90-was-filedesc.conf 

包含的文件,你要設置任何限制:

$ more /etc/security/limits.d/90-nproc.conf 
# Default limit for number of user's processes to prevent 
# accidental fork bombs. 
# See rhbz #432903 for reasoning. 

*   soft nproc  1024 
root  soft nproc  unlimited 

$ more /etc/security/limits.d/90-was-filedesc.conf 
root  hard nofile 20000 

我發現使用這種方法來管理這些類型覆蓋的比/etc/security/limits.conf碴乾淨多了。

此外,如果您想要將軟/硬設置爲相同的值,則可以使用-作爲類型。

$ more /etc/security/limits.d/90-was-filedesc.conf 
root  -  nofile 20000