[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [Libvir] [PATCH] lxc: handle SIGCHLD from exiting container
- From: Dave Leskovec <dlesko linux vnet ibm com>
- To: "Daniel P. Berrange" <berrange redhat com>
- Cc: libvir-list redhat com
- Subject: Re: [Libvir] [PATCH] lxc: handle SIGCHLD from exiting container
- Date: Mon, 05 May 2008 14:33:09 -0700
Daniel P. Berrange wrote:
> On Wed, Apr 30, 2008 at 11:38:01PM -0700, Dave Leskovec wrote:
>> This patch allows the lxc driver to handle SIGCHLD signals from exiting
>> containers. The handling will perform some cleanup such as waiting for
>> the container process and killing/waiting the tty process. This is also
>> required as a first step towards providing some kind of client container exit
>> notification. Additional support is needed for that but this SIGCHLD handling
>> is what would trigger the notification.
>>
>> libvirtd was already catching SIGCHLD although it was just ignoring it. I
>> implemented a mechanism to distribute the signal to any other drivers in the
>> daemon that registered a function to handle them. This required some changes to
>> the way libvirtd was catching signals (to get the pid of the sending process) as
>> well as an addition to the state driver structure. The intent was to provide
>> future drivers access to signals as well.
>
> The reason it was ignoring it was because the QEMU driver detects the
> shutdown of the VM without using the SIGCHLD directly. It instead detects
> EOF on the STDOUT/ERR of the VM child process & calls waitpid() then to
> cleanup. I notice that the LXC driver does not appear to setup any
> STDERR/OUT for its VMs so they're still inheriting the daemon's. If it
> isn't a huge problem it'd be desirable to try & have QEMU & LXC operate
> in the same general way wrt to their primary child procs for VMs.
>
> Regards,
> Daniel.
stdout/err for the container is set to the tty. Containers can be used in a
non-VM fashion as well. Think of a container running a daemon process or a
container running a job as a part of a job scheduler/distribution system.
Wouldn't it be valid in these cases for the container close stdout/err while
continuing to run?
--
Best Regards,
Dave Leskovec
IBM Linux Technology Center
Open Virtualization
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]