Hi Debian bug, for completeness: mksh behaves similar to dash here,
both wrt. the “interesting” fd behaviour and the change fixing it.
Hi mksh mailing list, you might want to have a look at the bugreport
and what subsequently became known about fd redirection.
Michael Biebl dixit:
>There I suggested to use
>
>( do_everything ) > /dev/null 2> /dev/null &
>
>as a possible workaround. I don't particularly like using a subshell but
>I'm just posting it for completeness sake here.
Unfortunately, this does *not* instruct mksh to close the copies
of those saved file descriptors, whereas redirecting them explicitly
using the (in this case misnamed) exec builtin does.
bye,
//mirabilos
--
Solange man keine schmutzigen Tricks macht, und ich meine *wirklich*
schmutzige Tricks, wie bei einer doppelt verketteten Liste beide
Pointer XORen und in nur einem Word speichern, funktioniert Boehm ganz
hervorragend. -- Andreas Bogk über boehm-gc in d.a.s.r
Shell behaviour: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754987#119
bash parent(13765): lrwx------ 0 -> /dev/pts/1
bash parent(13765): l-wx------ 1 -> /home/tglase/xout
bash parent(13765): l-wx------ 2 -> /home/tglase/xerr
bash parent(13765): lr-x------ 255 -> /home/tglase/xscript
bash chldfn(13769): lr-x------ 0 -> /dev/null
bash chldfn(13769): l-wx------ 1 -> /dev/null
bash chldfn(13769): l-wx------ 2 -> /dev/null
mksh parent(13780): l-wx------ 1 -> /home/tglase/xout
mksh parent(13780): l-wx------ 2 -> /home/tglase/xerr
mksh parent(13780): lrwx------ 24 -> /dev/tty
mksh parent(13780): lr-x------ 25 -> /home/tglase/xscript
mksh parent(13780): lrwx------ 26 -> /dev/pts/1
mksh chldfn(13784): l-wx------ 1 -> /dev/null
mksh chldfn(13784): l-wx------ 2 -> /dev/null
mksh chldfn(13784): lrwx------ 24 -> /dev/tty
mksh chldfn(13784): lr-x------ 25 -> /home/tglase/xscript
mksh chldfn(13784): l-wx------ 26 -> /home/tglase/xout
mksh chldfn(13784): l-wx------ 27 -> /home/tglase/xerr
mksh chldfn(13784): lr-x------ 28 -> /dev/null
dash parent(13791): lrwx------ 0 -> /dev/pts/1
dash parent(13791): l-wx------ 1 -> /home/tglase/xout
dash parent(13791): lr-x------ 10 -> /home/tglase/xscript
dash parent(13791): l-wx------ 2 -> /home/tglase/xerr
dash chldfn(13795): lr-x------ 0 -> /dev/null
dash chldfn(13795): l-wx------ 1 -> /dev/null
dash chldfn(13795): l-wx------ 10 -> /home/tglase/xout
dash chldfn(13795): l-wx------ 11 -> /home/tglase/xerr
dash chldfn(13795): l-wx------ 2 -> /dev/null
The patch…
-do_everything > /dev/null 2> /dev/null &
+exec > /dev/null 2> /dev/null
+do_everything &
… also works with mksh.