package adapter import ( "os" "syscall" "github.com/containers/libpod/libpod" "github.com/docker/docker/pkg/signal" "github.com/sirupsen/logrus" ) // ProxySignals ... func ProxySignals(ctr *libpod.Container) { sigBuffer := make(chan os.Signal, 128) signal.CatchAll(sigBuffer) logrus.Debugf("Enabling signal proxying") go func() { for s := range sigBuffer { // Ignore SIGCHLD and SIGPIPE - these are mostly likely // intended for the podman command itself. if s == signal.SIGCHLD || s == signal.SIGPIPE { continue } if err := ctr.Kill(uint(s.(syscall.Signal))); err != nil { logrus.Errorf("Error forwarding signal %d to container %s: %v", s, ctr.ID(), err) signal.StopCatch(sigBuffer) syscall.Kill(syscall.Getpid(), s.(syscall.Signal)) } } }() return }