Is it possible to install timeout in OpenWRT

2019-07-20 14:06发布

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.

3条回答
Juvenile、少年°
2楼-- · 2019-07-20 14:27

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.

查看更多
地球回转人心会变
3楼-- · 2019-07-20 14:32

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

查看更多
兄弟一词,经得起流年.
4楼-- · 2019-07-20 14:36

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

查看更多
登录 后发表回答