Linux系統默認允許用戶打開的文件數是1024,對於很多用戶/程序來說,這個值是不夠用的,怎么擴大呢?
直接ulimit -n 65535 !
但此方法只能本次登陸窗口有效,退出窗口即失效,且,有可能報您沒有權限,囧~
一勞永逸的方法是(需要你有root權限):修改/etc/security/limits.conf !
在文件末尾添加:
* soft nofile 65534 * hard nofile 65534
退出窗口,重新登陸,執行ulimit -n 看看是否已經改過來了?
# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 96002 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65534 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 96002 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
如果你的未生效,沒有關系,繼續下面的步驟:
有的Linux操作系統,如(Ubuntu)不允許配置 * ,你需要配置為需要放大權限的用戶,如root:
root soft nofile 65534 root hard nofile 65534
再試一下,是不是OK了?
limits.conf 配置說明: <domain> <type> <resource> <value>
domain: username|@groupname:設置需要被限制的用戶名,組名前面加@ 與 用戶名 區別。 * 表示所有用戶(注意有的系統不支持哦)。
type: soft 指的是當前系統生效的設置值 hard 表明系統中所能設定的最大值 soft 的限制不能比har 限制高 - 就表明同時設置了 soft 和 hard 的值。
resource: as - 地址空間限制 rss - 最大持久設置大小 cpu - 以分鍾為單位的最多 CPU 時間 core - 限制內核文件的大小 date - 最大數據大小 stack - 最大棧大小 fsize - 最大文件大小 noproc - 進程的最大數目 nofile - 打開文件的最大數目 memlock- 最大鎖定內存地址空間 maxlogins - 此用戶允許登錄的最大數目
value: 限制的值
要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。 查看 /etc/pam.d/login 文件中有: session required /lib/security/pam_limits.so 或 session required pam_limits.so