在Linux中监视和终止挂起的进程

我正在写一个脚本,运行许多同时运行“挖”命令的进程。 有一段时间(相对较less,但是由于我多次执行挖掘而发生的每次运行都会发生),dig命令会挂起0%的CPU。 因此,我的脚本永远不会终止。 我为每个运行的挖掘命令创build了一个监视器进程,这会在一段时间后终止它,但是我想知道是否没有更简单,更高效的方法来运行具有预定“过期date”的进程,即如果进程运行多于X秒,则会得到终止它的信号。

谢谢!

你可以使用timeout命令:

超时30秒my_command my_args

详情请参阅手册页。

问题是为什么你的挖掘过程挂在第一位。 尝试在ltrace和strace之类的debugging工具下运行它,甚至在ddd下运行它,看看它为什么挂起。 如果你发现任何不寻常的东西都是bug,那么这是开源软件变得更好的唯一方法。

挖掘应该超时,但是networking上的东西可能会被破坏。

你也可以尝试超时选项dig有,例如+time=T ,+试= T etc. see the挖手册页了解更多