实例脚本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联盟
|