ulimit就是user limit, 意思是与用户相关的一些限制参数, 下面我们来看看吧:
[taoge@localhost Desktop]$ 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) 3894 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [taoge@localhost Desktop]$看看open files那一行有个1024, 这就是上述问题的答案, 当然, 我们也可以直接用ulimit -n来获得, 如下:
[taoge@localhost Desktop]$ ulimit -n 1024 [taoge@localhost Desktop]$我们知道, 在linux中, 一切皆文件, 所以这个1024也是广义的, 并不是指仅仅test.txt这样的文件, 还包括socket之类的东东, 如果熟悉lsof命令, 那就更清楚这一点了。 有时候, 我们觉得1024太小, 那怎么办呢? 且看:
[taoge@localhost Desktop]$ ulimit -n 1024 [taoge@localhost Desktop]$ ulimit -n 10000 bash: ulimit: open files: cannot modify limit: Operation not permitted [taoge@localhost Desktop]$ su root Password: [root@localhost Desktop]# ulimit -n 10000 [root@localhost Desktop]# ulimit -n 10000 [root@localhost Desktop]# exit exit [taoge@localhost Desktop]$ ulimit -n 1024 [taoge@localhost Desktop]$ su root Password: [root@localhost Desktop]# ulimit -n 1024 [root@localhost Desktop]#可见: 1. 必须在root权限下才可更改。 2. 更改后, 也只能在当前shell下生效, 一旦退出, 便不再生效。那有没有办法修改系统的限制, 使其永久生效呢? 办法当然有, 自然是在文件中修改了。 不同系统对应的文件是不一样, 真正需要修改的朋友可以直接在网上找找。
上面的简单介绍主要以文件为主, 其实, 通过ulimit -a, 我们还可以看到有很多其它的限制参数, 比如常见的core大小、POSIX消息队列大小等等, 本文就不一一讨论了。