From 3c25656efa812a4c969c833623f3b96f86116e77 Mon Sep 17 00:00:00 2001 From: Lei Jitang Date: Mon, 13 Jun 2016 02:10:37 -0400 Subject: [PATCH] Fix shutdown daemon during starting causes daemon crash Signed-off-by: Lei Jitang --- cmd/dockerd/daemon.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/cmd/dockerd/daemon.go b/cmd/dockerd/daemon.go index cdbdefc418..63eb22b2b1 100644 --- a/cmd/dockerd/daemon.go +++ b/cmd/dockerd/daemon.go @@ -127,11 +127,6 @@ func (cli *DaemonCli) start() (err error) { stopc := make(chan bool) defer close(stopc) - signal.Trap(func() { - cli.stop() - <-stopc // wait for daemonCli.start() to return - }) - // warn from uuid package when running the daemon uuid.Loggerf = logrus.Warnf @@ -258,6 +253,11 @@ func (cli *DaemonCli) start() (err error) { if err != nil { return err } + cli.api = api + signal.Trap(func() { + cli.stop() + <-stopc // wait for daemonCli.start() to return + }) d, err := daemon.NewDaemon(cli.Config, registryService, containerdRemote) if err != nil { @@ -276,7 +276,6 @@ func (cli *DaemonCli) start() (err error) { initRouter(api, d) cli.d = d - cli.api = api cli.setupConfigReloadTrap() // The serve API routine never exits unless an error occurs