From 96f1a990346b7702e6f3efee42389b2736dbb204 Mon Sep 17 00:00:00 2001 From: Erik Hollensbe Date: Thu, 10 Jul 2014 12:24:41 -0700 Subject: [PATCH] Clean up the docker socket on termination of the daemon. Docker-DCO-1.1-Signed-off-by: Erik Hollensbe (github: erikh) --- server/server.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/server.go b/server/server.go index 87c910b580..495ccc2fb5 100644 --- a/server/server.go +++ b/server/server.go @@ -83,6 +83,18 @@ func InitPidfile(job *engine.Job) engine.Status { return engine.StatusOK } +func (srv *Server) removeUnixSockets() { + for _, sock := range srv.daemon.Config().Sockets { + parts := strings.SplitN(sock, "://", 2) + if parts[0] == "unix" { + err := os.Remove(parts[1]) + if err != nil { + utils.Debugf("Got error removing unix socket: %s", err.Error()) + } + } + } +} + // jobInitApi runs the remote api server `srv` as a daemon, // Only one api server can run at the same time - this is enforced by a pidfile. // The signals SIGINT, SIGQUIT and SIGTERM are intercepted for cleanup. @@ -121,6 +133,8 @@ func InitServer(job *engine.Job) engine.Status { } case syscall.SIGQUIT: } + + srv.removeUnixSockets() os.Exit(128 + int(sig.(syscall.Signal))) }(sig) }