#!/bin/sh

mywget()
{
        local url="http://127.0.0.1/favicon.ico"
        local pidnum pidbackground mycmdline pidbackground pidlist

        ( wget -qO - "$url" 2>/tmp/error_wget.$$.txt || echo "$?" >/tmp/error_wget.$$.rc ) &
        pidbackground="$!"
        pidlist="$( pidof wget )"

        [ -z "$pidlist" -a -n "$pidbackground" ] && {
                for i in 1 2 3 4 5; do {
                        pidnum=$(( $pidbackground + $i ))

                        [ -e "/proc/$pidnum/cmdline" ] && {
                                read mycmdline <"/proc/$pidnum/cmdline"
                                case "$mycmdline" in
                                        wget*)
                                                logger -s "found a pid, which pidof did'nt see: $pidnum -> $mycmdline"
                                                return 1
                                        ;;
                                esac
                        }
                } done
        }

        return 0
}

I=0
while true; do {
        if mywget >/dev/null ; then
                I=$(( $I + 1 ))
                rm /tmp/error_wget.* 2>/dev/null
        else
                logger -s "pidof-error after $I iterations"
                break
        fi
} do