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