1,说明:
ulimit用于shell启动进程所占用的资源.
2,类别:
shell内建命令
3,语法格式:
ulimit [-acdfHlmnpsStvw] [size]
4,参数介绍:
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes 5
原帖由 寂寞烈火 于 2007-7-31 00:52 发表
1)退出当前的shell, 那么临时定义的变量/限制当然不会起作用啦, 可以写在profile/bashrc里
2) 估计和su是否加-有关吧! 简单的su,root使用的还是当前普通用户的环境
这个东西似乎很深奥, 我对其也是一知半解 ...
原帖由 ailms 于 2007-7-31 00:56 发表
hoho,我是用 su - 转换的,所以就不知道为什么会这样
而且 ulimit 应该不会写 /etc/security/limits.conf ,那么它的设置值又都放在那里呢?是否在内存中,所以才会一退出会话就失效了?
[n7css@monitor n7css]$ ulimit -f 2000
原帖由 yuhe27913 于 2007-7-31 01:29 发表
即使root在自己的会话中修改file-max,number of processes限制也不会修改/etc/security/limits.conf
你为什么会那么想?
呵呵
su - 是切换成root并取得root的环境变量啊。
原帖由 mxbao 于 2007-7-31 11:19 发表
[root@3.7.0Biz-47 /home/bbb]# useradd hh
[root@3.7.0Biz-47 /home/bbb]# su hh
/bin/cat: /www/prima/VERSION: Permission denied
[hh@ /home/bbb]$ ulimit -f 1000
[hh@ /home/bbb]$ ulimit -a
core f ...
原帖由 ailms 于 2007-7-31 14:45 发表
俺的想法是 :
由于 ulimit 是影响当前进程和子进程的,而 su - 后的进程也是当前 shell 的一个子进程
所以 ulimit 可能是根据 PPID 来控制的
原帖由 yuhe27913 于 2007-7-31 16:24 发表
也不完全是,ulimit首先参考的是/etc/security/limit.conf中的设置
你可以做一个测试,在该参数文件中加入root的条目,无论用户是su到root还是su -到root 它的ulimit相关值总是以/etc/security/limit.conf ...
原帖由 ailms 于 2007-7-30 23:56 发表
又发现一个问题
[n7css@monitor n7css]$ ulimit -u 3
[n7css@monitor n7css]$ ps -u n7css
-bash: fork: 资源暂时不可用
[n7css@monitor n7css]$
[n7css@monitor n7css]$ ulimit -u 30
-bash: ulim ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |