From: Michel Normand Date: Wed, 26 May 2010 14:54:48 +0000 (+0200) Subject: move LXC_TTY_HANDLER_ADD/DEL out of init/fini in start.c X-Git-Tag: lxc-0.7.0~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=69ffa3111000771601533fc584d2c62a1e635f6e;p=thirdparty%2Flxc.git move LXC_TTY_HANDLER_ADD/DEL out of init/fini in start.c Signed-off-by: Michel Normand Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/start.c b/src/lxc/start.c index c6eef46a6..1774ec636 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -369,10 +369,6 @@ struct lxc_handler *lxc_init(const char *name, struct lxc_conf *conf) goto out_delete_console; } - /* Avoid signals from terminal */ - LXC_TTY_ADD_HANDLER(SIGINT); - LXC_TTY_ADD_HANDLER(SIGQUIT); - INFO("'%s' is initialized", name); return handler; @@ -406,9 +402,6 @@ void lxc_fini(const char *name, struct lxc_handler *handler) lxc_delete_tty(&handler->conf->tty_info); free(handler->name); free(handler); - - LXC_TTY_DEL_HANDLER(SIGQUIT); - LXC_TTY_DEL_HANDLER(SIGINT); } void lxc_abort(const char *name, struct lxc_handler *handler) @@ -604,6 +597,10 @@ int lxc_start(const char *name, char *const argv[], struct lxc_conf *conf) goto out_fini; } + /* Avoid signals from terminal */ + LXC_TTY_ADD_HANDLER(SIGINT); + LXC_TTY_ADD_HANDLER(SIGQUIT); + err = lxc_poll(name, handler); if (err) { ERROR("mainloop exited with an error"); @@ -615,6 +612,8 @@ int lxc_start(const char *name, char *const argv[], struct lxc_conf *conf) err = lxc_error_set_and_log(handler->pid, status); out_fini: + LXC_TTY_DEL_HANDLER(SIGQUIT); + LXC_TTY_DEL_HANDLER(SIGINT); lxc_unlink_nsgroup(name); lxc_fini(name, handler); return err;