Tuer implicitement des processus d’arrière-plan connectés à un processus de premier plan

Dans Bash, je lance un certain nombre de processus en arrière-plan et j’attends Bash au premier plan:

sleep 7 & sleep 10 & wait 

(C’est en fait une simplification de ce que fait le npm script , qui est l’application de cette question.)

Ensuite, chaque fois que je Ctrl+C hors du processus d’ wait , je voudrais tous les processus d’arrière-plan tué.

Est-ce possible? Comment?

Les processus d’arrière-plan sont des processus enfants du shell, mais pas des processus d’ wait d’ wait , il n’y a donc aucun moyen de propager un signal pour wait un des autres processus.

Un moyen rapide et sale de tuer tous les processus en arrière-plan, que vous pouvez placer dans un script ou un alias, est

kill -INT $(jobs -l | awk '{print $2}')

 kill -INT $(jobs -p)