diff --git a/native.go b/native.go index 89e6803..d34ab07 100644 --- a/native.go +++ b/native.go @@ -11,6 +11,7 @@ import ( "os" "os/exec" "sync" + "syscall" "time" "github.com/pion/webrtc/v4/pkg/media" @@ -224,6 +225,12 @@ func ExtractAndRunNativeBin() error { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + // Set the process group ID so we can kill the process and its children when this process exits + cmd.SysProcAttr = &syscall.SysProcAttr{ + Setpgid: true, + Pdeathsig: syscall.SIGKILL, + } + // Start the command if err := cmd.Start(); err != nil { return fmt.Errorf("failed to start binary: %w", err)