mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 04:42:33 +02:00
25 lines
500 B
Go
25 lines
500 B
Go
package utils
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
"time"
|
|
|
|
"github.com/yusing/go-proxy/internal/logging"
|
|
"github.com/yusing/go-proxy/internal/task"
|
|
)
|
|
|
|
func WaitExit(shutdownTimeout int) {
|
|
sig := make(chan os.Signal, 1)
|
|
signal.Notify(sig, syscall.SIGINT)
|
|
signal.Notify(sig, syscall.SIGTERM)
|
|
signal.Notify(sig, syscall.SIGHUP)
|
|
|
|
// wait for signal
|
|
<-sig
|
|
|
|
// gracefully shutdown
|
|
logging.Info().Msg("shutting down")
|
|
_ = task.GracefulShutdown(time.Second * time.Duration(shutdownTimeout))
|
|
}
|