Se você pegar o SIGINT no shell pai e sair do shell, ele também interromperá a paplay:
trap exit SIGINT;
while true; do paplay /usr/share/sounds/phone.wav ; done
Parece que paplay
bloqueia o sinal INT e afeta que o shell pai não execute seu manipulador padrão.
A instalação de um manipulador no shell pai no qual você redefine o manipulador e reapresenta o sinal provavelmente o resolve de uma maneira melhor:
trap 'trap - SIGINT; kill -SIGINT $$' SIGINT;
while :; do paplay /usr/share/sounds/linuxmint-login.wav ; done
(Com a abordagem exit
, o processo do iniciador acha que seu filho saiu voluntariamente, enquanto que, na segunda abordagem, parece que o script foi eliminado com SIGINT
, o que era).