linux +几秒后如何杀死卡住的程序

时间:2011-11-21 23:50:46

标签: linux

我在linux / Solaris系统上执行以下二进制文件(为了获取系统信息)

      /usr/sbin/diag

运行diag命令后,我在屏幕上显示了一些行,但它卡住了,我没有得到Linux / Solaris提示符(diag程序没有返回exe代码0或1,因为它卡住了 - :()

(退出舞会诊断的唯一方法是执行CNTL - C)

我的问题:如果有一些方法可以在~5秒后杀死diag二进制程序

例如

   /usr/sbin/diag &      ( the lines runs on screen but diag stuck , need to CNTRL-C )
   Wait ~5 
   Kill the /usr/sbin/diag process (&!)

5 个答案:

答案 0 :(得分:2)

/usr/sbin/diag & # run diag in background
pid=$! # set last run command's process id into pid var
sleep 5s # wait 5 seconds
kill -9 $pid # kill that pid

答案 1 :(得分:1)

答案 2 :(得分:1)

请参阅timeout命令,您应该安装它,然后运行

timeout 60 command_line

60秒的超时。这是安全和聪明的。

答案 3 :(得分:0)

一种可能的方法:

/usr/sbin/diag &
sleep 5 ; kill $!

bash(1)变量$!是指最近执行的后台命令的pid。因此,如果您无法将diag放入后台,那么这对您无效。

答案 4 :(得分:0)

timelimit 60 command_line args 

这也是一种方法。它是netpipes包的一部分。