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.

Reply via email to