Bash Run命令一定时间?

时间:2013-05-08 08:31:46

标签: bash timeout command

我正在制作bash脚本供我使用。 如何运行命令一段时间,比如20秒并终止命令? 我尝试了很多来自互联网的解决方案,但没有任何作用,我也试过超时命令但没有成功。请给我一些解决方案。

提前致谢

更新

例如:我想在10秒后在脚本和终端中运行此命令

some command

5 个答案:

答案 0 :(得分:50)

以下是一些bash脚本和一个名为timelimit的程序,可以解决您的问题。 Kill process after it's been allowed to run for some time

编辑:我认为我找到了更好的解决方案。尝试使用超时程序。从手册页: “超时 - 运行带有时间限制的命令”。例如:

timeout 5s sleep 10s

它基本上运行你的命令,并在指定的持续时间后将它杀死它。

答案 1 :(得分:12)

在不提供timeout命令的系统上,您可以使用以下命令:

your-cmd & sleep 30 ; kill $!

这将运行可能长时间运行your-cmd,超时为30秒。

如果your-cmd未在30秒内完成,则会发送TERM信号。

答案 2 :(得分:1)

您是否计划安排脚本的执行?然后cron是你的朋友。

答案 3 :(得分:0)

我建议2个选项:

  • 在拥有timeout命令的系统上,您可以根据man timeout使用它。
  • 在没有它的系统(例如CentOS 5)上,您可以使用bash /usr/share/doc/bash-3.2/scripts/timeout提供的脚本。根据其使用信息使用它。

答案 4 :(得分:-3)

使用睡眠&& 操作数:

睡眠 [以秒为单位的时间]&& 您命令

实施例

睡眠 7&& 回声' Hello world!'