diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-03-14 18:30:22 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-03-14 18:30:22 +0900 |
| commit | 7c60a4d8e8baa77b42789c041838fa82dd7d36f9 (patch) | |
| tree | b859b33bd4d522229e2b497992ef42243f1b22d7 /internal/app | |
| parent | 4bb5d9780f3c46e942dc778d93c28391caee33c7 (diff) | |
helper: embed context on creation
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/app')
| -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 |
