Skip to content

Commit 136be31

Browse files
authored
windows: fix service getting stuck on shutdown (#3733)
1 parent 2046376 commit 136be31

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

cmd/crowdsec/run_in_svc.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import (
1616
"github.com/crowdsecurity/crowdsec/pkg/database"
1717
)
1818

19+
func isWindowsService() (bool, error) {
20+
return false, nil
21+
}
22+
1923
func StartRunSvc() error {
2024
var (
2125
cConfig *csconfig.Config

cmd/crowdsec/run_in_svc_windows.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ import (
1515
"github.com/crowdsecurity/crowdsec/pkg/database"
1616
)
1717

18+
func isWindowsService() (bool, error) {
19+
return svc.IsWindowsService()
20+
}
21+
1822
func StartRunSvc() error {
1923
const svcName = "CrowdSec"
2024
const svcDescription = "Crowdsec IPS/IDS"
@@ -25,7 +29,7 @@ func StartRunSvc() error {
2529
// It's a noop if profiling is not enabled
2630
defer pprof.StopCPUProfile()
2731

28-
isRunninginService, err := svc.IsWindowsService()
32+
isRunninginService, err := isWindowsService()
2933
if err != nil {
3034
return fmt.Errorf("failed to determine if we are running in windows service mode: %w", err)
3135
}

cmd/crowdsec/serve.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,12 @@ func Serve(cConfig *csconfig.Config, agentReady chan bool) error {
439439
return nil
440440
}
441441

442-
if cConfig.Common != nil && !flags.haveTimeMachine() {
442+
isWindowsSvc, err := isWindowsService()
443+
if err != nil {
444+
return fmt.Errorf("failed to determine if we are running in windows service mode: %w", err)
445+
}
446+
447+
if cConfig.Common != nil && !flags.haveTimeMachine() && !isWindowsSvc {
443448
_ = csdaemon.Notify(csdaemon.Ready, log.StandardLogger())
444449
// wait for signals
445450
return HandleSignals(cConfig)

0 commit comments

Comments
 (0)