如果运行时间超过 x 秒,则从终端停止程序

如果运行时间超过 x 秒,则从终端停止程序

因此通过输入

/.blabla

我启动了程序 blabla。有没有办法从终端停止(即相当于 ctrl+c)已经运行超过 x 秒的 blabla?(我正在尝试在各种随机输入上测试一个我没有源代码的程序,但程序偶尔会卡住)。

答案1

只需使用存储库中 coreutils 包中的超时功能:

安装:sudo apt-get install coreutils

用法:timeout [-signal] time command

答案2

以下是一篇博客文章,详细介绍了几种方法:http://www.cyberciti.biz/faq/shell-scripting-run-command-under-alarmclock/

答案3

您可以使用sleep来实现这一点:

./blabla &
pid=$!
(sleep TIMEOUT; kill $pid 2>/dev/null) &
sleeppid=$!
wait $pid
kill -HUP $sleeppid 2>/dev/null

相关内容