Hello,

The code in question is

set +m
echo $BASH_VERSION
echo $SHELLOPTS
trap 'echo =====SIGCHLD=====' 18
sleep 1
echo done


Bash 5 output:
5.0.17(1)-release
braceexpand:hashall:interactive-comments
=====SIGCHLD=====
done


Bash 4 output:
4.4.19(1)-release
braceexpand:hashall:interactive-comments
done



I was trying to find a relevant note in changelog and I found this in CHANGES:

n. The SIGCHLD trap is run once for each exiting child process even if job
   control is not enabled when the shell is in Posix mode. 

and this in CWRU/changelog:

        - waitchld: run SIGCHLD trap for each child exited even if job control
          is not enabled when in Posix mode. Prompted by an austin-group-l
          discussion 

I was trying to find the discussion and the closest thing I found was

https://www.mail-archive.com/austin-group-l@opengroup.org/msg00898.html


As a side note, another interesting bit I found is that if I replace the
'sleep 1' with 'read' I will not get SIGCHLD in bash 5.


My understanding is that this is intentional change, but I would like to
kindly ask if you could confirm it.


Thank you
-- 
        Vlad

Reply via email to