Even if none of the packets returned, ping still terminates with 0 error code. Ex: /bin/ping -c 1 -q 10.1.1.2 (non-existant machine on my network) returns 0. It is a very optimistic ping ;-) Workaround - get ping from 5.2 (I never tried 6.0)
Same for me. RH 6.1, netkit-base-0.10-37. Just a guess, but this could be caused by ping receiving a "destination host unreachable", and counts the error packet as a reply packet. From the manpage: If ping does not receive any reply packets at all it will exit with code 1. On error it exits with code 2. Otherwise it exits with code 0. This makes it possible to use the exit code to see if a host is alive or not. so this is, technically, behaviour as documented, but is not expected (or useful). $ ping -v -c 1 10.42.42.55 PING 10.42.42.55 (10.42.42.55) from 10.42.42.1 : 56(84) bytes of data. From 10.42.42.1: Destination Host Unreachable Vr HL TOS Len ID Flg off TTL Pro cks Src Dst Data 4 5 00 5400 56a3 0 0000 40 01 c76e 10.42.42.1 10.42.42.55 --- 10.42.42.55 ping statistics --- 1 packets transmitted, 0 packets received, +1 errors, 100% packet loss $ echo $? 0
The ping in iputils-991024-2 returns a non-zero return code if host is unreachable.
*** Bug 9296 has been marked as a duplicate of this bug. ***