github.com/elastic/gosigar@v0.14.3/examples/ps/ps.go (about) 1 // Copyright (c) 2012 VMware, Inc. 2 3 package main 4 5 import ( 6 "fmt" 7 "strings" 8 9 "github.com/elastic/gosigar" 10 ) 11 12 func main() { 13 pids := gosigar.ProcList{} 14 pids.Get() 15 16 // ps -eo pid,ppid,stime,time,rss,user,state,command 17 fmt.Print(" PID PPID STIME TIME RSS USER S COMMAND\n") 18 19 for _, pid := range pids.List { 20 state := gosigar.ProcState{} 21 mem := gosigar.ProcMem{} 22 time := gosigar.ProcTime{} 23 args := gosigar.ProcArgs{} 24 25 if err := state.Get(pid); err != nil { 26 continue 27 } 28 if err := mem.Get(pid); err != nil { 29 continue 30 } 31 if err := time.Get(pid); err != nil { 32 continue 33 } 34 if err := args.Get(pid); err != nil { 35 continue 36 } 37 38 fmt.Printf("%5d %5d %s %s %6d %-15s %c %s\n", 39 pid, state.Ppid, 40 time.FormatStartTime(), time.FormatTotal(), 41 mem.Resident/1024, state.Username, state.State, 42 strings.Join(args.List, " ")) 43 } 44 }