tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: wait(2) and SIGCHLD
Date: Fri, 14 Aug 2020 20:01:18 +0200
From: Edgar =?iso-8859-1?B?RnXf?= <ef%math.uni-bonn.de@localhost>
Message-ID: <20200814180117.GQ61086%trav.math.uni-bonn.de@localhost>
| 3. I don't see where POSIX defines or allows this, but given 2., I'm surely
| missing something.
It is specified to work this way in POSIX, though right now I don't
have the time to go dig out exactly where.
Setting SIGCHLD to SIG_IGN effectively means that you want to ignore
your children - they then don't report any exit status to their parent,
but simply vanish when they exit. Thus when the parent does a wait()
it has no children, and gets ECHLD.
Leave (or set) SIGCHLD to SIG_DFL and you don't get signals, but child
processes do report status to their parent. Catch SIGCHLD and you'll
get signalled when a child exits (I'm not sure if NetBSD guarantees one
signal delivery for each exited child or just a signal if there are
some unspecified number of exited children).
The actions on an ignored SIGCHLD is SysV inherited behaviour,
Bell Labs (v7/32V) and CSRG BSD systems didn't act this way.
kre
Home |
Main Index |
Thread Index |
Old Index