diff --git a/restore.go b/restore.go index 067c13d3c..51ca88b9e 100644 --- a/restore.go +++ b/restore.go @@ -134,6 +134,8 @@ func restoreContainer(context *cli.Context, spec *specs.LinuxSpec, config *confi if err != nil { return -1, err } + handler := newSignalHandler(tty) + defer handler.Close() if err := container.Restore(process, options); err != nil { tty.Close() return -1, err @@ -149,8 +151,6 @@ func restoreContainer(context *cli.Context, spec *specs.LinuxSpec, config *confi if detach { return 0, nil } - handler := newSignalHandler(tty) - defer handler.Close() return handler.forward(process) } diff --git a/utils.go b/utils.go index fe52b1bb3..ef6fbba3e 100644 --- a/utils.go +++ b/utils.go @@ -307,6 +307,9 @@ func runProcess(container libcontainer.Container, config *specs.Process, listenF return -1, err } + handler := newSignalHandler(tty) + defer handler.Close() + if err := container.Start(process); err != nil { tty.Close() return -1, err @@ -323,8 +326,6 @@ func runProcess(container libcontainer.Container, config *specs.Process, listenF if detach { return 0, nil } - handler := newSignalHandler(tty) - defer handler.Close() return handler.forward(process) }