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.