From eeb73a42dbf6c382245343a91c2c8c65b33c465e Mon Sep 17 00:00:00 2001 From: Lucas Manuel Rodriguez Date: Tue, 22 Mar 2022 18:00:00 -0300 Subject: [PATCH] Fleetctl preview to clean up osquery socket before starting orbit (#4729) * Fleetctl preview to clean up osquery socket before starting orbit * Use os.Remove --- ...11-fleetctl-preview-cleanup-osquery-socket | 1 + cmd/fleetctl/preview.go | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 changes/4711-fleetctl-preview-cleanup-osquery-socket diff --git a/changes/4711-fleetctl-preview-cleanup-osquery-socket b/changes/4711-fleetctl-preview-cleanup-osquery-socket new file mode 100644 index 0000000000..546984ae89 --- /dev/null +++ b/changes/4711-fleetctl-preview-cleanup-osquery-socket @@ -0,0 +1 @@ +* Fleetctl preview to clean up osquery socket files before running fleet-osquery. diff --git a/cmd/fleetctl/preview.go b/cmd/fleetctl/preview.go index 1da907a141..be119e9311 100644 --- a/cmd/fleetctl/preview.go +++ b/cmd/fleetctl/preview.go @@ -629,6 +629,9 @@ func downloadOrbitAndStart(destDir, enrollSecret, address, orbitChannel, osquery if err := os.RemoveAll(path.Join(destDir, "orbit.db")); err != nil { fmt.Println("Warning: clearing orbit db dir:", err) } + if err := cleanUpSocketFiles(destDir); err != nil { + fmt.Println("Warning: cleaning up socket files:", err) + } updateOpt := update.DefaultOptions @@ -673,6 +676,26 @@ func downloadOrbitAndStart(destDir, enrollSecret, address, orbitChannel, osquery return nil } +// cleanUpSocketFiles cleans up fleet-osqueryd's socket file +// ("orbit-osquery.em") and osquery extension socket files +// ("orbit-osquery.em.*"). +func cleanUpSocketFiles(path string) error { + entries, err := os.ReadDir(path) + if err != nil { + return fmt.Errorf("read dir: %w", err) + } + for _, entry := range entries { + if !strings.HasPrefix(entry.Name(), "orbit-osquery.em") { + continue + } + entryPath := filepath.Join(path, entry.Name()) + if err := os.Remove(entryPath); err != nil { + return fmt.Errorf("remove %q: %w", entryPath, err) + } + } + return nil +} + func stopOrbit(destDir string) error { err := killFromPIDFile(destDir, "osquery.pid", "osqueryd") if err != nil {