2022-12-03 02:37:38 +01:00
|
|
|
//go:build windows || plan9
|
2022-11-21 18:14:06 +01:00
|
|
|
|
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"os"
|
|
|
|
"os/signal"
|
|
|
|
|
|
|
|
"github.com/navidrome/navidrome/log"
|
|
|
|
)
|
|
|
|
|
|
|
|
func startSignaler(ctx context.Context) func() error {
|
|
|
|
log.Info(ctx, "Starting signaler")
|
|
|
|
|
|
|
|
return func() error {
|
|
|
|
var sigChan = make(chan os.Signal, 1)
|
|
|
|
signal.Notify(sigChan, os.Interrupt)
|
|
|
|
select {
|
2022-12-03 02:37:38 +01:00
|
|
|
case sig := <-sigChan:
|
2022-12-03 02:30:23 +01:00
|
|
|
log.Info(ctx, "Received termination signal", "signal", sig)
|
2022-11-21 18:14:06 +01:00
|
|
|
return interrupted
|
|
|
|
case <-ctx.Done():
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|