[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