Well, TERM handling is not that simple, try this:
```
. installer/functions
addtrap "echo EXIT"
sh -c "sleep 2; echo Killing; kill -s TERM $$" &
while [ 1 ]; do echo -n .; sleep 1; done
```
In both bash and dash, signals HUP & INT wait for the current command to complete, then run the handler as expected. In bash & dash, TERM aborts the current command, but the EXIT trap is only run in bash (dash just exits).

Because of that, the trap is never executed, and `croutonwebsocket` is left running (orphaned). So we need to trap TERM to avoid this problem.

We can do it by default in functions (is that a problem for other scripts?), or add a variable EXTRASIG with a list of extra signals to trap.