Parte do seu problema é que você tem o >> trap.log fora do comando (quoted) arg,
então tudo o que você está recebendo no arquivo trap.log é a saída do comando trap
- o que não é nada.
Não tenho certeza do que você quer dizer com "TRAPPED & PRONTO "quando o seu script está terminando,
mas parece que o que você quer dizer é
trap 'rm -f filename; echo "message" >> trap.log' sigspec …
E eu concordo com Karlo: se você é
"Apenas matando os servidores que estão sendo usados pelo script"
então o script provavelmente está saindo (ao invés de ser morto por um sinal)
e você deve usar o EXIT (ou, equivalentemente, 0 ) sigspec
(possivelmente além de 1 , 2 e 15 ).
P.S. Você não precisa de um ponto-e-vírgula ( ; ) no final do comando trap .