github.com/jstaf/onedriver@v0.14.2-0.20240420231225-f07678f9e6ef/fs/signal_handlers.go (about) 1 package fs 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/hanwen/go-fuse/v2/fuse" 8 "github.com/rs/zerolog/log" 9 ) 10 11 // UnmountHandler should be used as goroutine that will handle sigint then exit gracefully 12 func UnmountHandler(signal <-chan os.Signal, server *fuse.Server) { 13 sig := <-signal // block until signal 14 log.Info().Str("signal", strings.ToUpper(sig.String())). 15 Msg("Signal received, unmounting filesystem.") 16 17 err := server.Unmount() 18 if err != nil { 19 log.Error().Err(err).Msg("Failed to unmount filesystem cleanly! " + 20 "Run \"fusermount3 -uz /MOUNTPOINT/GOES/HERE\" to unmount.") 21 } 22 23 os.Exit(128) 24 }