From ba6c51c1027f32ca3cd656f7cedbf5c3671b28e7 Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 16 Dec 2025 14:47:46 -0500 Subject: [PATCH] core: exit non-zero when SIGUSR1 is received (for systemd r estart) --- core/cmd/dms/shell.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/core/cmd/dms/shell.go b/core/cmd/dms/shell.go index 99fff895..9cc0b96f 100644 --- a/core/cmd/dms/shell.go +++ b/core/cmd/dms/shell.go @@ -233,7 +233,14 @@ func runShellInteractive(session bool) { for { select { case sig := <-sigChan: - if sig == syscall.SIGUSR1 && !isSessionManaged { + if sig == syscall.SIGUSR1 { + if isSessionManaged { + log.Infof("Received SIGUSR1, exiting for systemd restart...") + cancel() + cmd.Process.Signal(syscall.SIGTERM) + os.Remove(socketPath) + os.Exit(1) + } log.Infof("Received SIGUSR1, spawning detached restart process...") execDetachedRestart(os.Getpid()) return @@ -466,7 +473,14 @@ func runShellDaemon(session bool) { for { select { case sig := <-sigChan: - if sig == syscall.SIGUSR1 && !isSessionManaged { + if sig == syscall.SIGUSR1 { + if isSessionManaged { + log.Infof("Received SIGUSR1, exiting for systemd restart...") + cancel() + cmd.Process.Signal(syscall.SIGTERM) + os.Remove(socketPath) + os.Exit(1) + } log.Infof("Received SIGUSR1, spawning detached restart process...") execDetachedRestart(os.Getpid()) return