Subject: Re: [vserver] Getting a real pid 1 init in a container
From: Grzegorz Nosek <grzegorz.nosek@gmail.com>
Date: Tue, 20 Mar 2012 12:13:24 +0100

W dniu 20.03.2012 11:31, Grzegorz Nosek pisze:
> 18:58:31.755173 waitid(P_ALL, 0, 0xffc6e6d8,
> WNOHANG|WEXITED|WSTOPPED|WCONTINUED, NULL) = -1 ECHILD (No child
> processes) <0.000208>
>
> OK, so it isn't waitpid() but waitid(). My bad, I guess I haven't heard
> of waitid() before.

Sigh, having reread the waitid() documentation[1] it looks like I have 
misinterpreted the return value (ECHILD meaning "no reapable child 
processes", not "no children at all"). Silly me, I thought that EAGAIN 
would be the "not yet" errno value.

Still, the SIGCHLD apparently isn't delivered anyway. If waitid() 
returned ECHILD, meaning the process is still alive, either the 
following getpgid() should have succeeded, or a SIGCHLD should have 
appeared before it.

Best regards,
  Grzegorz Nosek

1. http://pubs.opengroup.org/onlinepubs/7908799/xsh/waitid.html