因此通过输入
/.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