Is it possible to install timeout in OpenWRT

纵饮孤独 提交于 2019-12-24 04:18:10

问题


I need to execute a command with a timeout in OpenWRT, but it seems that the command timeout is not installed by default neither can be installed using opkg. I know that I can do a work around (using command &; sleep $DELAY; kill $!), but I wish to do this more properly without getting the risk of kill trying to kill a process in case the command finished before the timeout.


回答1:


Yes you can install timeout on openWRT

$ opkg update
$ opkg install coreutils-timeout
$ timeout 2 sleep 10

This has been tested with AA, pretty sure that would also work with BB.




回答2:


In short: it is not possible. I have to do it using sleep && kill.




回答3:


timeout is a shell command so it executes in a subshell

timeout 6 sleep 20 will work if executed in direct shell terminal but same command won't work if initiated from a shell script.

So to run timeout in a shell script , use like this out="$(timeout 6 sleep 20)" OR echo "$(timeout 10 sleep 20)"

this will run your timeout and your command in one subshell



来源:https://stackoverflow.com/questions/30689264/is-it-possible-to-install-timeout-in-openwrt

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!