UPDATE
Isso é muito mais simples:
(
{ ${PROC1_CMD} >&3 } 2>&1 |
while : ; do
grep -q "YOUR ERROR MESSAGE" && ${YOUR_ACTION}
done
) 3>&2
Basicamente, estamos apenas trocando stdin e stderr para $PROC1_CMD , para que possamos grep de sua saída sobre o |pipe. Dessa forma, qualquer que seja seu processo, ele pode dizer normalmente, mas assim que escreve para stderr a mensagem que você não deseja pode levar $YOUR_ACTION.