-bash:fork:Resourse Temporarily Unavailable

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指令详解

1top – 164014  系统时间

246users 当前连接到服务器上的用户

3Tasks304 total 总共有304个进程

4Cpu(s):“98.4% id 空闲cpu百分比

5Mem24672656k total,服务器总共内存大小,17133276k used,被占用的内存大小,7539380k free,空闲内存大小 536336k buffers,用作内核缓存的内存量

6Swap:交换区信息

7PID:进程ID

8USER:进程所有者的用户名

9PR:优先级

10NInice值。负值表示高优先级,正值表示低优先级

11VIRT:进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

12RES:进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA

13SHR:共享内存大小,单位kb

14S:进程状态;D=不可中断的睡眠状态

                              R=运行

                              S=睡眠

                              T=跟踪/停止

15%CPU:上次更新到现在的CPU时间占用百分比

16TIME+:进程使用的CPU时间总计,单位1/100

17COMMAND:命令名/命令行

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值