From 8ff768026dfa04d2e1a2c9c9f4cd8b08642004fa Mon Sep 17 00:00:00 2001 From: "Paul Buetow (europa)" Date: Sun, 24 May 2015 21:10:43 +0100 Subject: add packages --- process/process.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 process/process.go (limited to 'process') diff --git a/process/process.go b/process/process.go new file mode 100644 index 0000000..4420b44 --- /dev/null +++ b/process/process.go @@ -0,0 +1,35 @@ +package process + +import ( + "fmt" + "io/ioutil" + "log" + "regexp" + "strconv" +) + +type Process struct { + Pid int + Cmdline string +} + +func Gather(res chan<- Process) { + re, _ := regexp.Compile("^[0-9]+$") + + dir, err := ioutil.ReadDir("/proc/") + if err != nil { + log.Fatal(err) + } + + for _, direntry := range dir { + name := direntry.Name() + if re.MatchString(name) { + pid, _ := strconv.Atoi(name) + bytes, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline", pid)) + if err != nil { + log.Fatal(err) + } + res <- Process{Pid: pid, Cmdline: string(bytes)} + } + } +} -- cgit v1.2.3