Eu temo que isso seja impossível depois. Afinal, "pipe quebrado" significa que o outro processo desapareceu (ou pelo menos fechou seu descritor de arquivo).
Enquanto tudo ainda está bem, você pode fazer isso:
sleep 1000 | sleep 1000
PID=12345 # PID of one of the sleep processes
ls -l /proc/$PID/fd
# output [...]
l-wx------ 1 hl hauke 64 15. Apr 19:11 1 -> pipe:[108237859]
# output [...]
lsof -n | grep 108237859 # gives you all processes which have access to this pipe
sleep 12928 hl 1w FIFO 0,8 0t0 108262866 pipe
sleep 12929 hl 0r FIFO 0,8 0t0 108262866 pipe
Editar 1
Se lsof não estiver disponível:
for dir in /proc/[1-9]*; do
test -r "$dir"/fd || continue
if ls -ln "$dir"/fd | grep -q 108355662; then
echo "PID: ${dir#/proc/}"
fi
done