Is it possible to install timeout in OpenWRT

2019-07-20 14:11发布

问题:

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