// we have to use this type of signal handler because there is a memory leak if we // wait and reap with SICHLD. func handleSignals(process *libcontainer.Process, tty *tty) { sigc := make(chan os.Signal, 10) signal.Notify(sigc) tty.resize() for sig := range sigc { switch sig { case syscall.SIGWINCH: tty.resize() default: process.Signal(sig) } } }
func (r *runner) terminate(p *libcontainer.Process) { p.Signal(syscall.SIGKILL) p.Wait() }