lib/procutil: prevent from app termination on SIGHUP signal, since this signal is frequently used for config reload

This commit is contained in:
Aliaksandr Valialkin 2020-04-30 02:09:27 +03:00
parent ae215e5538
commit a970705d8e

View File

@ -9,8 +9,18 @@ import (
// WaitForSigterm waits for either SIGTERM or SIGINT
//
// Returns the caught signal.
//
// It also prevent from program termination on SIGHUP signal,
// since this signal is frequently used for config reloading.
func WaitForSigterm() os.Signal {
ch := make(chan os.Signal, 1)
signal.Notify(ch, os.Interrupt, syscall.SIGTERM)
return <-ch
for {
signal.Notify(ch, os.Interrupt, syscall.SIGTERM, syscall.SIGHUP)
sig := <-ch
if sig == syscall.SIGHUP {
// Prevent from the program stop on SIGHUP
continue
}
return sig
}
}