listen mutliple times on SIGHUP
This commit is contained in:
@@ -133,21 +133,28 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
wwid := strings.Split(wwid_tmp[1], " ")[0]
|
wwid := strings.Split(wwid_tmp[1], " ")[0]
|
||||||
|
|
||||||
|
|
||||||
|
duration := 300
|
||||||
|
if conf.Warewulf.UpdateInterval > 0 {
|
||||||
|
duration = conf.Warewulf.UpdateInterval
|
||||||
|
}
|
||||||
|
stopTimer := time.NewTimer(time.Duration(duration) * time.Second)
|
||||||
// listen on SIGHUP
|
// listen on SIGHUP
|
||||||
sigs := make(chan os.Signal, 1)
|
sigs := make(chan os.Signal, 1)
|
||||||
|
|
||||||
signal.Notify(sigs, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGINT)
|
signal.Notify(sigs, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGINT)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
sig := <-sigs
|
for {
|
||||||
switch sig {
|
sig := <-sigs
|
||||||
case syscall.SIGHUP:
|
switch sig {
|
||||||
log.Printf("Received SIGNAL: %s\n", sig)
|
case syscall.SIGHUP:
|
||||||
updateSystem(conf.Ipaddr, conf.Warewulf.Port, wwid, tag, localUUID)
|
log.Printf("Received SIGNAL: %s\n", sig)
|
||||||
case syscall.SIGTERM, syscall.SIGINT:
|
stopTimer.Stop()
|
||||||
wwlog.Printf(wwlog.INFO, "termination wwclient!, %v", sig)
|
stopTimer.Reset(0)
|
||||||
cleanUp()
|
case syscall.SIGTERM, syscall.SIGINT:
|
||||||
os.Exit(0)
|
wwlog.Printf(wwlog.INFO, "termination wwclient!, %v", sig)
|
||||||
|
cleanUp()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
var finishedInitialSync bool = false
|
var finishedInitialSync bool = false
|
||||||
@@ -159,11 +166,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
finishedInitialSync = true
|
finishedInitialSync = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if conf.Warewulf.UpdateInterval > 0 {
|
<-stopTimer.C
|
||||||
time.Sleep(time.Duration(conf.Warewulf.UpdateInterval*1000) * time.Millisecond)
|
stopTimer.Reset(time.Duration(duration) * time.Second)
|
||||||
} else {
|
|
||||||
time.Sleep(30000 * time.Millisecond * 1000)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user