added handling for sighup (issues reload command to server)

This commit is contained in:
Johannes Bülow 2025-09-14 19:37:18 +02:00
parent f559a6f990
commit 090e35e46c
Signed by: jmb
GPG key ID: B56971CF7B8F83A6

View file

@ -57,19 +57,33 @@ func RunService() {
} }
}() }()
// Separate Channel for handling SIGHUP
hupCh := make(chan os.Signal, 1)
signal.Notify(hupCh, syscall.SIGHUP)
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop() defer stop()
<- ctx.Done() <- ctx.Done()
for {
select {
case <-hupCh:
log.Println("Sending reload signal to Server Process")
if _, err := stdin.Write([]byte("reload\n")); err != nil {
log.Printf("write error: %v", err)
}
case <-ctx.Done():
log.Println("Sending stop signal to Server Process") log.Println("Sending stop signal to Server Process")
if _, err := stdin.Write([]byte("stop\n")); err != nil { if _, err := stdin.Write([]byte("stop\n")); err != nil {
log.Printf("write error: %v", err) log.Printf("write error: %v", err)
} }
//stdin.Close()
if err := cmd.Wait(); err != nil { if err := cmd.Wait(); err != nil {
log.Printf("child exit: %v", err) log.Printf("child exit: %v", err)
} }
log.Println("Shutdown completed") log.Println("Shutdown completed")
return
}
}
} }