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 _, ok := err.(*exec.ExitError); ok { return StatusDown } if err != nil { return StatusUnknown } return StatusUp } return check, nil }