linux下shell命令超时自动kill的方法

<!-- lang: shell -->
function timeout() {
waitsec=5
( $* ) & pid=$!
( sleep $waitsec && kill -HUP $pid ) 2>/dev/null & watchdog=$!
# if command finished
if wait $pid 2>/dev/null; then
    pkill -HUP -P $watchdog
    wait $watchdog
fi
# else: command interrupted
}
timeout sleep 10

redhat/centos系列里没有debian/ubuntu里的timeout命令,但是可以通过bash的watch方式实现。

你可能感兴趣的:(linux下shell命令超时自动kill的方法)