From 61263bd77e7f89e5d62acc1c97652c85c308d433 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Thu, 9 Mar 2017 16:26:14 -0800 Subject: [PATCH] Set containerd as subreaper Signed-off-by: Michael Crosby --- cmd/containerd/config.go | 2 ++ cmd/containerd/main.go | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/cmd/containerd/config.go b/cmd/containerd/config.go index 996481321..65e401831 100644 --- a/cmd/containerd/config.go +++ b/cmd/containerd/config.go @@ -44,6 +44,8 @@ type config struct { Snapshotter string `toml:"snapshotter"` // Plugins provides plugin specific configuration for the initialization of a plugin Plugins map[string]toml.Primitive `toml:"plugins"` + // Enable containerd as a subreaper + Subreaper bool `toml:"subreaper"` md toml.MetaData } diff --git a/cmd/containerd/main.go b/cmd/containerd/main.go index ebce5a443..2c5b3e985 100644 --- a/cmd/containerd/main.go +++ b/cmd/containerd/main.go @@ -23,6 +23,7 @@ import ( "github.com/docker/containerd/plugin" "github.com/docker/containerd/reaper" "github.com/docker/containerd/snapshot" + "github.com/docker/containerd/sys" "github.com/docker/containerd/utils" metrics "github.com/docker/go-metrics" "github.com/pkg/errors" @@ -85,6 +86,12 @@ func main() { // we don't miss any signals during boot signals := make(chan os.Signal, 2048) signal.Notify(signals, syscall.SIGTERM, syscall.SIGINT, syscall.SIGUSR1, syscall.SIGCHLD) + if conf.Subreaper { + log.G(global).Info("setting subreaper...") + if err := sys.SetSubreaper(1); err != nil { + return err + } + } log.G(global).Info("starting containerd boot...") // load all plugins into containerd