Here's a bizarre puzzle that I've been trying to solve on several linux boxen: How does a parent process read the stderr of /bin/ping? It oughta be trivial. But consider this ping of a machine that is down at the moment: $ /bin/ping -n -i 10 64.28.81.46 PING 64.28.81.46 (64.28.81.46) from 207.172.135.95 : 56 data bytes