diff --git a/internal/olsrd/run.go b/internal/olsrd/run.go index aad476a9..530d35a8 100644 --- a/internal/olsrd/run.go +++ b/internal/olsrd/run.go @@ -40,7 +40,11 @@ func run(ctx context.Context, stopChan chan struct{}) { } else { fmt.Println("OLSR process exited, restarting it") } - run(ctx, stopChan) + err = olsrCmd.Process.Signal(os.Signal(syscall.SIGKILL)) + if err != nil { + log.Printf("failed to kill process: %v\n", err) + } + go run(ctx, stopChan) case <-ctx.Done(): err = <-processResults if err != nil { diff --git a/internal/vtun/run.go b/internal/vtun/run.go index 0ba7ded5..b03ba460 100644 --- a/internal/vtun/run.go +++ b/internal/vtun/run.go @@ -40,7 +40,11 @@ func run(ctx context.Context, stopChan chan struct{}) { } else { fmt.Println("VTun process exited, restarting it") } - run(ctx, stopChan) + err = vtunCmd.Process.Signal(os.Signal(syscall.SIGKILL)) + if err != nil { + log.Printf("failed to kill process: %v\n", err) + } + go run(ctx, stopChan) case <-ctx.Done(): err = <-processResults if err != nil {