| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > SHELL

限制单个用户可用虚拟内存和进程数shell脚本

时间:2007-08-23 10:56:19  来源:Linux联盟收集整理  作者:赵珂

实例脚本4QELinux联盟

脚本名: ulimit.sh4QELinux联盟

if [ $UID -ge 500 ]4QELinux联盟
then4QELinux联盟
ulimit -v 1000004QELinux联盟
ulimit -m 1000004QELinux联盟
ulimit -u 2004QELinux联盟
fi4QELinux联盟

注: ulimit -m和-v参数的单位为Kbytes. uid为500及500以上的用户都将自动修改ulimit数值(then后面的ulimit指令).4QELinux联盟

概念注释4QELinux联盟

虚拟内存(virtual memory): ulimit -v 限制单个进程可用的虚拟内存大小, 其中虚拟内存包括所有的内存类型, 包括堆栈, 内存映射文件. ulimit -v 100000限制了单个进程最多能够使用100M内存, 超出该限制终端将会收到一个内存不足的错误.4QELinux联盟

最大驻留集大小(maximum resident set size): ulimit -m 100000限制单个进程实际能驻留在RAM中的代码和数据大小不能超过100M. 4QELinux联盟

最大用户进程数(max user processes): ulimit -u 200限制当前用户同时不能超过拥有200个进程数.4QELinux联盟

实例操作一 进程fork炸弹4QELinux联盟
运行shell命令行, 运行下面指令:4QELinux联盟
[zhaoke@islab ~]$ ulimit -a4QELinux联盟
max memory size (kbytes, -m) unlimited4QELinux联盟
max user processes (-u) 40964QELinux联盟
virtual memory (kbytes, -v) unlimited4QELinux联盟
4QELinux联盟

4QELinux联盟
[1] 291614QELinux联盟

过几秒钟后系统停止任何服务.4QELinux联盟
(需强行reset重启系统)4QELinux联盟

实例操作二 用ulimit.sh限制进程fork炸弹4QELinux联盟
1. 在/etc/profile.d目录下创建ulimit.sh脚本, 内容如上.4QELinux联盟
2. 打开shell终端, 然后再运行实例操作一中的第二步4QELinux联盟

4QELinux联盟
bash: fork: Resource temporarily unavailable4QELinux联盟
bash: fork: Resource temporarily unavailable4QELinux联盟
bash: fork: Resource temporarily unavailable4QELinux联盟

使用Ctrl-C终止fork炸弹进程. 4QELinux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门