[libvirt] [PATCH] lxc: Ensure to kill init process by sending SIGKILL if needed
Daniel Veillard
veillard at redhat.com
Thu Jul 22 16:59:05 UTC 2010
On Sat, Jul 17, 2010 at 01:13:32AM +0900, Ryota Ozaki wrote:
> Init process may remain after sending SIGTERM for some reason.
> For example, if original init program is used, it is definitely
> not killed by SIGTERM.
> ---
> src/lxc/lxc_controller.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
> index 44bcc82..d8b7bc7 100644
> --- a/src/lxc/lxc_controller.c
> +++ b/src/lxc/lxc_controller.c
> @@ -663,7 +663,11 @@ cleanup:
> close(containerPty);
>
> if (container > 1) {
> + int status;
> kill(container, SIGTERM);
> + if (!(waitpid(container, &status, WNOHANG) == 0 &&
> + WIFEXITED(status)))
> + kill(container, SIGKILL);
> waitpid(container, NULL, 0);
> }
> return rc;
Sounds right, and code looks fine, applied and pushed,
thanks!
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list