diff options
Diffstat (limited to 'pkg/adapter/sigproxy_linux.go')
| -rw-r--r-- | pkg/adapter/sigproxy_linux.go | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/pkg/adapter/sigproxy_linux.go b/pkg/adapter/sigproxy_linux.go index ebfeab725..35745a6aa 100644 --- a/pkg/adapter/sigproxy_linux.go +++ b/pkg/adapter/sigproxy_linux.go @@ -25,11 +25,17 @@ func ProxySignals(ctr *libpod.Container) {  			}  			if err := ctr.Kill(uint(s.(syscall.Signal))); err != nil { +				// If the container dies, and we find out here, +				// we need to forward that one signal to +				// ourselves so that it is not lost, and then +				// we terminate the proxy and let the defaults +				// play out.  				logrus.Errorf("Error forwarding signal %d to container %s: %v", s, ctr.ID(), err)  				signal.StopCatch(sigBuffer)  				if err := syscall.Kill(syscall.Getpid(), s.(syscall.Signal)); err != nil {  					logrus.Errorf("failed to kill pid %d", syscall.Getpid())  				} +				return  			}  		}  	}()  | 
