I was able to fix this by changing
``` exec $STARTUP ```
to
``` $STARTUP ```
Interestingly, this doesn't leave a shell process running -- it leaves `gdm-x-session` running. So perhaps that is emulating a shell somehow, but gets the unquoting wrong for `exec`?
I was able to fix this by changing
```
exec $STARTUP
```
to
```
$STARTUP
```
Interestingly, this doesn't leave a shell process running -- it leaves `gdm-x-session` running. So perhaps that is emulating a shell somehow, but gets the unquoting wrong for `exec`?