| // +build !windows |
| |
| package daemon // import "github.com/docker/docker/daemon" |
| |
| import ( |
| "os" |
| "os/signal" |
| |
| stackdump "github.com/docker/docker/pkg/signal" |
| "github.com/sirupsen/logrus" |
| "golang.org/x/sys/unix" |
| ) |
| |
| func (d *Daemon) setupDumpStackTrap(root string) { |
| c := make(chan os.Signal, 1) |
| signal.Notify(c, unix.SIGUSR1) |
| go func() { |
| for range c { |
| path, err := stackdump.DumpStacks(root) |
| if err != nil { |
| logrus.WithError(err).Error("failed to write goroutines dump") |
| } else { |
| logrus.Infof("goroutine stacks written to %s", path) |
| } |
| } |
| }() |
| } |