From 2045363cd12a2f8d099eebc63fde046347aa135b Mon Sep 17 00:00:00 2001 From: Ben Toews <1144197+btoews@users.noreply.github.com> Date: Thu, 8 Jun 2023 10:57:50 -0600 Subject: [PATCH] Don't kill exec process immediately (#484) --- cmd/litestream/main.go | 5 +---- cmd/litestream/replicate.go | 4 ++-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/cmd/litestream/main.go b/cmd/litestream/main.go index f1440d3..773cd41 100644 --- a/cmd/litestream/main.go +++ b/cmd/litestream/main.go @@ -86,20 +86,17 @@ func (m *Main) Run(ctx context.Context, args []string) (err error) { } // Setup signal handler. - ctx, cancel := context.WithCancel(ctx) signalCh := signalChan() - if err := c.Run(ctx); err != nil { + if err := c.Run(); err != nil { return err } // Wait for signal to stop program. select { case err = <-c.execCh: - cancel() fmt.Println("subprocess exited, litestream shutting down") case sig := <-signalCh: - cancel() fmt.Println("signal received, litestream shutting down") if c.cmd != nil { diff --git a/cmd/litestream/replicate.go b/cmd/litestream/replicate.go index 1973183..cd95d96 100644 --- a/cmd/litestream/replicate.go +++ b/cmd/litestream/replicate.go @@ -94,7 +94,7 @@ func (c *ReplicateCommand) ParseFlags(ctx context.Context, args []string) (err e } // Run loads all databases specified in the configuration. -func (c *ReplicateCommand) Run(ctx context.Context) (err error) { +func (c *ReplicateCommand) Run() (err error) { // Display version information. log.Printf("litestream %s", Version) @@ -162,7 +162,7 @@ func (c *ReplicateCommand) Run(ctx context.Context) (err error) { return fmt.Errorf("cannot parse exec command: %w", err) } - c.cmd = exec.CommandContext(ctx, execArgs[0], execArgs[1:]...) + c.cmd = exec.Command(execArgs[0], execArgs[1:]...) c.cmd.Env = os.Environ() c.cmd.Stdout = os.Stdout c.cmd.Stderr = os.Stderr