Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1254628
  • 博文数量: 168
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 1696
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 13:17
文章分类

全部博文(168)

文章存档

2015年(6)

2014年(9)

2013年(47)

2012年(11)

2011年(13)

2010年(18)

2009年(11)

2008年(42)

2007年(11)

分类: LINUX

2013-07-02 12:27:55


点击(此处)折叠或打开

  1. timeLimitRun() {
  2.   local cmdId=$RANDOM;
  3.   local timeOut=$1
  4.   local plist=
  5.   shift
  6.   (for i in `seq 0 $timeOut`; do
  7.       sleep 1;
  8.       p=$(ps axf|grep "sh -c : $cmdId;"|grep -v grep);
  9.       read pid nil <<<$p;
  10.       #echo $p;
  11.       [ $i -ge $timeOut -a -n "$pid" ] && {
  12.           echo "{WARN} cmd[$@] timeOut!"
  13.           plist=$(pstree -paA $pid | sed -e 's/^[^,]*,//' -e 's/ .*$//')
  14.           { kill $plist; usleep 100000; kill -9 $plist; } 2>/dev/null
  15.           return 1;
  16.       }
  17.       [ -z "$pid" ] && break;
  18.   done &)

  19.   sh -c ": $cmdId; $*";
  20. }

阅读(853) | 评论(0) | 转发(0) |
0

上一篇:mark: fs syscall call path

下一篇:krb conf mark

给主人留下些什么吧!~~