On 06/09/2010 07:56 PM, Ferenc Wagner wrote:
> Signed-off-by: Ferenc Wagner<wf...@niif.hu>
> ---
>   src/lxc/start.c |   17 +++++++++++++++++
>   1 files changed, 17 insertions(+), 0 deletions(-)
>
> diff --git a/src/lxc/start.c b/src/lxc/start.c
> index b69ac88..7bbcf5a 100644
> --- a/src/lxc/start.c
> +++ b/src/lxc/start.c
> @@ -463,6 +463,7 @@ int lxc_spawn(struct lxc_handler *handler)
>       int clone_flags;
>       int failed_before_rename = 0;
>       const char *name = handler->name;
> +     int ctty;
>
>       if (lxc_sync_init(handler))
>               return -1;
> @@ -509,6 +510,22 @@ int lxc_spawn(struct lxc_handler *handler)
>               }
>       }
>
> +     if (setpgid(handler->pid, 0)) {
> +             SYSERROR("failed to create new process group");
> +             goto out_delete_net;
> +     }
> +     DEBUG("created new process group %d", handler->pid);
> +     ctty = open("/dev/tty", O_RDONLY);
> +     if (ctty != -1) {
> +             int ret = tcsetpgrp(ctty, handler->pid);
> +             close(ctty);
> +             if (ret) {
> +                     SYSERROR("failed to set terminal foreground process 
> group");
> +                     goto out_delete_net;
> +             }
> +             DEBUG("set terminal foreground process group");
> +     }
>    

Is there a particular reason to do that from the parent and not from the 
child ?

>       /* Tell the child to continue its initialization and wait for
>        * it to exec or return an error
>        */
>    


------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to