Tente uma lista de sinais, se um falhar, espere três segundos, (o tempo de espera pode ser ajustado com base no que quer que my-term.sh
esteja fazendo), então
tente outro:
(my.bin > pipe1 < pipe2; x=$$ ; \
for sig in SIGTERM SIGINT SIGQUIT SIGABRT SIGKILL ; \
do kill -${sig} $x && break ; sleep 3s ; done ; ) &
my-term.sh pipe1 pipe2