Files
komari-agent/monitoring/unit/process_darwin.go

28 lines
568 B
Go

//go:build darwin
// +build darwin
package monitoring
import (
"os/exec"
"strings"
)
// ProcessCount returns the number of running processes on Darwin (macOS)
func ProcessCount() (count int) {
return processCountDarwin()
}
// processCountDarwin counts processes using the `ps` command
func processCountDarwin() (count int) {
cmd := exec.Command("ps", "-A")
output, err := cmd.Output()
if err != nil {
return 0
}
// Count the number of lines in the output, excluding the header line
lines := strings.Split(string(output), "\n")
return len(lines) - 1
}