27 Linux错误解决 -bash:fork:Resourse Temporarily Unavailable
首先解释一下为什么会出现该错误:
错误出现在10.52.150.18这台Linux服务器上,原因出在ET的日构建环境,在18服务器上自动跑脚本的时候,出现了死循环,死循环产生大量进程,服务器的进程数达到最大值,所以18服务器执行任何指令的时候,会出现-bash:fork:Resourse Temporarily Unavailable(资源暂时不可用)的错误;
解决方法:
1 修改max user processes(用户最大进程数)的大小
用root用户进入/etc/security目录下,找到limits.conf;
系统默认:
改成:
找到跑死循环的用户,即查看系统的线程数;用top指令;
2 TOP指令详解
1:top – 16:40:14 系统时间
2:46users 当前连接到服务器上的用户
3:Tasks:304 total 总共有304个进程
4:Cpu(s):“98.4% id” 空闲cpu百分比
5:Mem:24672656k total,服务器总共内存大小,17133276k used,被占用的内存大小,7539380k free,空闲内存大小 ,536336k buffers,用作内核缓存的内存量
6:Swap:交换区信息
7:PID:进程ID
8:USER:进程所有者的用户名
9:PR:优先级
10:NI:nice值。负值表示高优先级,正值表示低优先级
11:VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
12:RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
13:SHR:共享内存大小,单位kb
14:S:进程状态;D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
15:%CPU:上次更新到现在的CPU时间占用百分比
16:TIME+:进程使用的CPU时间总计,单位1/100秒
17:COMMAND:命令名/命令行
由top指令可以查看系统所有进程数,进程很多的话,再查看是哪个用户下进程多;
指令:ps aux | less
找到是哪个用户后,切换到该用户下,查看死循环产生的进程详细信息:
指令:ps –fu 用户名
然后就死循环进程批量kill掉:
指令:ps -fu oracle|grep build.sh|grep -v grep|awk '{print "kill -9 ", $2}'|sh
删除批量文件:ls -lrt | grep ".aud" | awk '{print "rm -rf",$9}' | sh
ls -lrt | grep " axis*" | awk '{print "rm -rf",$9}' | sh
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28588485/viewspace-755216/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28588485/viewspace-755216/