This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] manual: don't ignore SIGCHLD when calling waitpid
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Wed, 17 Apr 2019 16:05:47 -0300
- Subject: Re: [PATCH] manual: don't ignore SIGCHLD when calling waitpid
- References: <UeWQ4A1a4GgI6uaX0Mud4BwN2NlaSaJU3UHzLm5wxpZTbkxvq5HMLy_lxja53gYGMmaJ0uRH7hJv94BX8hxnAyVDsIhRFxMNJwVf33oCLS4=@emersion.fr> <mrSMqWcdkD4oDu3VVfhHxrlKvush4ZHdIIsixwqu4XIPxZuzuGB_19gVPSUesb9OXB9uqmZrJqmYbAwVNpVMjNvkHN08BmP1FT6M5KPWKjY=@emersion.fr>
My understanding of the example is for interactive shells (shell_is_interactive),
the idea is only to get child information to the explicit launched processes done
by launch_process, so ignoring and reseting SIGCHLD seems ok.
On 17/04/2019 15:34, Simon Ser wrote:
> Hi,
>
> Could anyone review this? I can't find a maintainer to Cc on the wiki.
>
> Thanks,
>
> Simon Ser
>
> On Thursday, January 17, 2019 4:35 PM, Simon Ser <contact@emersion.fr> wrote:
>> From: emersion <contact@emersion.fr>
>>
>> If SIGCHLD is ignore, child process information is discarded as soon as they
>> exit, making it impossible to retrieve their status with waitpid.
>> ---
>> ChangeLog | 4 ++++
>> manual/job.texi | 2 --
>> 2 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/ChangeLog b/ChangeLog
>> index 4c34d45a..661d2749 100644
>> --- a/ChangeLog
>> +++ b/ChangeLog
>> @@ -1,3 +1,7 @@
>> +2019-01-17 Simon Ser <contact@emersion.fr>
>> +
>> + * manual/job.texi: don't ignore SIGCHLD when calling waitpid
>> +
>> 2019-01-16 Paul A. Clarke <pc@us.ibm.com>
>>
>> * sysdeps/powerpc/powerpc64/multiarch/strncmp.c: Fix #ifdef.
>> diff --git a/manual/job.texi b/manual/job.texi
>> index 05a42ea8..0fc7f51a 100644
>> --- a/manual/job.texi
>> +++ b/manual/job.texi
>> @@ -414,7 +414,6 @@ init_shell ()
>> signal (SIGTSTP, SIG_IGN);
>> signal (SIGTTIN, SIG_IGN);
>> signal (SIGTTOU, SIG_IGN);
>> - signal (SIGCHLD, SIG_IGN);
>>
>> /* @r{Put ourselves in our own process group.} */
>> shell_pgid = getpid ();
>> @@ -530,7 +529,6 @@ launch_process (process *p, pid_t pgid,
>> signal (SIGTSTP, SIG_DFL);
>> signal (SIGTTIN, SIG_DFL);
>> signal (SIGTTOU, SIG_DFL);
>> - signal (SIGCHLD, SIG_DFL);
>> @}
>>
>> /* @r{Set the standard input/output channels of the new process.} */
>> --
>> 2.20.1