diff options
author | Lei Jitang <leijitang@huawei.com> | 2016-06-13 02:10:37 -0400 |
---|---|---|
committer | Lei Jitang <leijitang@huawei.com> | 2016-06-13 02:10:37 -0400 |
commit | 3c25656efa812a4c969c833623f3b96f86116e77 (patch) | |
tree | 17bb1a9724d1cc9d694936adb9abdd1536f52faf | |
parent | 4dafd107ad0cb89e1a7f9e3bcc66fb6a5a5c99c5 (diff) | |
download | docker-3c25656efa812a4c969c833623f3b96f86116e77.tar.gz |
Fix shutdown daemon during starting causes daemon crash
Signed-off-by: Lei Jitang <leijitang@huawei.com>
-rw-r--r-- | cmd/dockerd/daemon.go | 11 |
1 files 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 |