diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/app/shim/main.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/internal/app/shim/main.go b/internal/app/shim/main.go index 360c89b7..4ec3916c 100644 --- a/internal/app/shim/main.go +++ b/internal/app/shim/main.go @@ -124,7 +124,11 @@ func Main() { if fmsg.Load() { seccomp.CPrintln = log.Println } + + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() // unreachable if b, err := helper.NewBwrap( + ctx, conf, path.Join(fst.Tmp, "sbin/init0"), false, nil, func(int, int) []string { return make([]string, 0) }, extraFiles, @@ -132,12 +136,10 @@ func Main() { ); err != nil { log.Fatalf("malformed sandbox config: %v", err) } else { - b.Stdin(os.Stdin).Stdout(os.Stdout).Stderr(os.Stderr) - ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) - defer stop() // unreachable + b.SetStdin(os.Stdin).SetStdout(os.Stdout).SetStderr(os.Stderr) // run and pass through exit code - if err = b.Start(ctx, false); err != nil { + if err = b.Start(false); err != nil { log.Fatalf("cannot start target process: %v", err) } else if err = b.Wait(); err != nil { var exitError *exec.ExitError |
