如果在 Linux 下的指令或 Script 開啟的檔案數量太多,超過了系統開啟檔案的限制,便會看到以下錯誤:
Too many open files (24)
解決方法是提高開啟檔案的限制,而提高開啟檔案上限,分別可以設定整個系統通用,或者只針對個別使用者帳號,以下是設定方法:
個別使用者帳號設定:
開啟檔案 /etc/security/limits.conf:
# /etc/security/limits.conf
例如我要將 useracc 帳號的開啟檔案限制改為 500000, 在檔案最後加入以下兩行:
useracc hard nofile 500000
useracc soft nofile 500000
然後開啟檔案 /etc/pam.d/common-sess
儲存檔案後,useracc 帳號下次登入後,設定便會生效,如果帳號已經登入,需要重新登入才會生效。
上調系統預設限制
開啟檔案 /etc/sysctl.conf
# vi /etc/sysctl.conf
加入以下一行:
fs.file-max = 2097152
儲存檔案後離開編輯器,下次開機設定會生效,或者執行以下指令讓設定立即生效:
# sysctl -p