Ejemplo n.º 1
0
func (p *PidOf) Run(transport plugins.Transport, request plugins.Request) plugins.Result {
	stdout, _, err := transport.Exec("/bin/pidof", p.ProcessName)
	if err != nil {
		return plugins.NewResult(plugins.Failed, nil, err.Error())
	}

	content, err := ioutil.ReadAll(stdout)
	if err != nil {
		return plugins.NewResult(plugins.Failed, nil, err.Error())
	}

	fields := strings.Fields(string(content))

	return plugins.NewResult(
		plugins.Ok,
		plugins.NewMeasurementCollection(
			"count",
			len(fields)),
		"%s has PID(s) %s", p.ProcessName, strings.TrimSpace(string(content)))
}