如何在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来实现这一点。