package services import ( "encoding/json" "os/exec" ) func Ping(msg json.RawMessage) (Check, error) { var config struct { Address string `json:"address"` } err := json.Unmarshal(msg, &config) if err != nil { return nil, err } check := func() Status { cmd := exec.Command("ping", "-c 4", config.Address) err := cmd.Run() if err != nil { return StatusUnknown } code := cmd.ProcessState.ExitCode() if code != 0 { return StatusDown } return StatusUp } return check, nil }