diff --git a/internal/core/core.go b/internal/core/core.go index 5eedc629..9629c8e2 100644 --- a/internal/core/core.go +++ b/internal/core/core.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "os" + "os/signal" "reflect" "github.com/aler9/gortsplib" @@ -129,6 +130,9 @@ func (p *Core) run() { return make(chan struct{}) }() + interrupt := make(chan os.Signal, 1) + signal.Notify(interrupt, os.Interrupt) + outer: for { select { @@ -156,6 +160,10 @@ outer: break outer } + case <-interrupt: + p.Log(logger.Info, "shutting down gracefully") + break outer + case <-p.ctx.Done(): break outer }