package libcontainerd // import "github.com/docker/docker/libcontainerd" import ( "os" "path/filepath" "syscall" "time" "github.com/containerd/containerd/defaults" "github.com/docker/docker/pkg/system" ) const ( sockFile = "docker-containerd.sock" debugSockFile = "docker-containerd-debug.sock" ) func (r *remote) setDefaults() { if r.GRPC.Address == "" { r.GRPC.Address = filepath.Join(r.stateDir, sockFile) } if r.GRPC.MaxRecvMsgSize == 0 { r.GRPC.MaxRecvMsgSize = defaults.DefaultMaxRecvMsgSize } if r.GRPC.MaxSendMsgSize == 0 { r.GRPC.MaxSendMsgSize = defaults.DefaultMaxSendMsgSize } if r.Debug.Address == "" { r.Debug.Address = filepath.Join(r.stateDir, debugSockFile) } if r.Debug.Level == "" { r.Debug.Level = "info" } if r.OOMScore == 0 { r.OOMScore = -999 } if r.snapshotter == "" { r.snapshotter = "overlay" } } func (r *remote) stopDaemon() { // Ask the daemon to quit syscall.Kill(r.daemonPid, syscall.SIGTERM) // Wait up to 15secs for it to stop for i := time.Duration(0); i < shutdownTimeout; i += time.Second { if !system.IsProcessAlive(r.daemonPid) { break } time.Sleep(time.Second) } if system.IsProcessAlive(r.daemonPid) { r.logger.WithField("pid", r.daemonPid).Warn("daemon didn't stop within 15 secs, killing it") syscall.Kill(r.daemonPid, syscall.SIGKILL) } } func (r *remote) platformCleanup() { os.Remove(filepath.Join(r.stateDir, sockFile)) }