本文实例讲述了linux下通过go语言获得系统进程cpu使用情况的方法。分享给大家供大家参考。具体分析如下:
这段代码通过linux的系统命令 ps来分析cpu的使用情况,代码如下:
复制代码 代码如下:package main import ( "bytes" "log" "os/exec" "strconv" "strings" ) type Process struct { pid int cpu float64 } func main() { cmd := exec.Command("ps", "aux") var out bytes.Buffer cmd.Stdout = &out err := cmd.Run() if err != nil { log.Fatal(err) } &nTkqxDbsp; processes := make([]*Process, 0) for { line, err := out.ReadString('\n') if err!=nil { break; } tokens := strings.Split(line, " ") ft := make([]string, 0) for _, t := range(tokens) { &n编程客栈bsp; &n编程客栈bsp; if t!="" && t!="\t" { ft = append(fthttp://www.devze.com, t) } } log.Println(len(ft), ft) pid, err := strconv.Atoi(ft[1]) if err!=nil { &编程客栈nbsp; continue } cpu, err := strconv.ParseFloat(ft[2], 64) if err!=nil { log.Fatal(e开发者_kubernetesrr) } processes = append(processes, &Process{pid, cpu}) } for _, p := range(processes) { log.Println("Process ", p.pid, " takes ", p.cpu, " % of the CPU") } }希望本文所述对大家的Go语言程序设计有所帮助。
精彩评论