Only wait for background service processes to exit

This commit is contained in:
2025-11-24 16:34:55 +02:00
parent bcff6fecf8
commit e5c465610c
+2 -5
View File
@@ -325,13 +325,8 @@ func (service *EnitService) StartService() (err error) {
// Reload service if needed // Reload service if needed
if service.shouldReload { if service.shouldReload {
LoadService(service.Filepath) LoadService(service.Filepath)
if GetServiceByName(service.Name) == nil {
return
} }
} }
} else {
service.state = EnitServiceRunning
}
return return
} }
if !service.CrashOnSafeExit { if !service.CrashOnSafeExit {
@@ -423,6 +418,7 @@ func (service *EnitService) StopService() error {
} }
} }
if service.Type == "background" {
// Check if the process has stopped gracefully, otherwise send sigkill on timeout // Check if the process has stopped gracefully, otherwise send sigkill on timeout
exited := make(chan bool) exited := make(chan bool)
go func() { go func() {
@@ -440,6 +436,7 @@ func (service *EnitService) StopService() error {
service.GetProcess().Signal(syscall.SIGKILL) service.GetProcess().Signal(syscall.SIGKILL)
return fmt.Errorf("could not stop process gracefully") return fmt.Errorf("could not stop process gracefully")
} }
}
newServiceStatus = EnitServiceStopped newServiceStatus = EnitServiceStopped
logger.Printf("Service (%s) has stopped!\n", service.Name) logger.Printf("Service (%s) has stopped!\n", service.Name)