我需要在OpenWRT中执行带超时的命令,但似乎默认情况下没有安装命令超时,也不能使用opkg安装。我知道我可以做一个工作(使用命令&amp ;; sleep $ DELAY; kill $!),但是我希望更好地做到这一点,而不会在命令完成之前遇到杀死尝试杀死进程的风险超时。
答案 0 :(得分:6)
是的,你可以在openWRT上安装超时
$ opkg update
$ opkg install coreutils-timeout
$ timeout 2 sleep 10
这已经过AA测试,非常肯定这也适用于BB。
答案 1 :(得分:1)
简而言之:这是不可能的。我必须使用sleep
&& kill
。
答案 2 :(得分:0)
timeout
是一个shell命令,因此它在子shell中执行
timeout 6 sleep 20
将起作用,但是如果从shell脚本启动,则相同的命令将不起作用。
因此要在shell脚本中运行超时,请使用这样的方法
out="$(timeout 6 sleep 20)"
要么
echo "$(timeout 10 sleep 20)"
这将在一个子shell中运行你的超时和你的命令