如何在Bash中运行一个超时的进程?

可能重复:
在给定的超时后杀死subprocess的Bash脚本

有没有办法写一个shell脚本,执行一个特定的命令15秒,然后杀死命令?

我已经尝试睡眠,等待和平,但也许我使用他们错了。

使用timeout命令:

 timeout 15s command 

注意:在一些系统上,你需要安装coreutils ,在其他系统上缺less或者有不同的命令行参数。 查看@ArjunShankar发布的备用解决scheme。 基于它,你可以封装这个锅炉代码,并创build你自己的可移植的timeout脚本或小C应用程序,做同样的事情。

你可以为后台进程,并且它的PID进入$! 。 然后睡觉并杀死:

 some_command some_arg1 some_arg2 & TASK_PID=$! sleep 15 kill $TASK_PID 

在这个URL我发现,有人提到,不止一个解决scheme来实现这一点。