为执行的命令设定超时时间的脚本

#timeout在后台执行接受的命令,并设定超时时间,超时后会把命令干掉
timeout(){
    waitfor=$1
    shift
    command=$*
    $command &
    commandpid=$!
    (sleep $waitfor;kill -9 $commandpid >/dev/null 2>&1)&
    watchdogpid=$!
    sleeppid=$(ps --ppid $watchdogpid |awk '{print $1}')
    wait $commandpid
    kill $sleeppid>/dev/null 2>&1
}

你可能感兴趣的:(bash,超时)