summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Jitang <leijitang@huawei.com>2016-06-13 02:10:37 -0400
committerLei Jitang <leijitang@huawei.com>2016-06-13 02:10:37 -0400
commit3c25656efa812a4c969c833623f3b96f86116e77 (patch)
tree17bb1a9724d1cc9d694936adb9abdd1536f52faf
parent4dafd107ad0cb89e1a7f9e3bcc66fb6a5a5c99c5 (diff)
downloaddocker-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.go11
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