可能的复制品: 在给定超时后终止子进程的 Bash 脚本
有没有一种方法可以编写一个 shell 脚本来执行某个命令15秒,然后终止该命令?
我试过睡觉,等待和乒乓,但也许我使用他们错误。
有些机器没有安装/可用的 timeout。在这种情况下,您可以对进程进行后台处理; 它的 PID 然后被存储为 $!; 然后休眠所需的时间,然后终止它:
timeout
$!
some_command arg1 arg2 & TASK_PID=$! sleep 15 kill $TASK_PID
At 这个网址 I find that there are mentioned, more than one solutions to make this happen.
使用 timeout命令:
timeout 15s command
注意: 在某些系统中,您需要安装 coreutils,而在其他系统中,coreutils丢失了或者具有不同的命令行参数。参见@ArjunShankar 发布的替代解决方案。在此基础上,您可以封装锅炉板代码,并创建自己的便携式 timeout脚本或小型 C 应用程序,做同样的事情。
coreutils