diff options
Diffstat (limited to '')
-rw-r--r-- | listener/godo.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/listener/godo.go b/listener/godo.go index 87e9446..8d82231 100644 --- a/listener/godo.go +++ b/listener/godo.go | |||
@@ -8,6 +8,7 @@ import ( | |||
8 | "netlink" | 8 | "netlink" |
9 | "os" | 9 | "os" |
10 | "os/exec" | 10 | "os/exec" |
11 | "regexp" | ||
11 | "strings" | 12 | "strings" |
12 | "syscall" | 13 | "syscall" |
13 | "time" | 14 | "time" |
@@ -176,4 +177,24 @@ func checkProc(pCooked *Event) { | |||
176 | fmt.Fprintf(os.Stderr, "Err: %v\n", err) | 177 | fmt.Fprintf(os.Stderr, "Err: %v\n", err) |
177 | pCooked.cwd = "" | 178 | pCooked.cwd = "" |
178 | } | 179 | } |
180 | |||
181 | fd, err = os.Open(fileName + "cgroup") | ||
182 | if err != nil { | ||
183 | fmt.Fprintf(os.Stderr, "Err: %v\n", err) | ||
184 | // cgroup记空,即没赶上 | ||
185 | return | ||
186 | } | ||
187 | scanner = bufio.NewScanner(fd) | ||
188 | cgroupRegex := regexp.MustCompile(`/docker/([0-9a-f]+)$`) | ||
189 | scanner.Split(bufio.ScanLines) | ||
190 | for scanner.Scan() { | ||
191 | line := scanner.Text() | ||
192 | if cgroupRegex.MatchString(line) { | ||
193 | match := cgroupRegex.FindStringSubmatch(line) | ||
194 | pCooked.cgroup = match[1] | ||
195 | return | ||
196 | } | ||
197 | } | ||
198 | fd.Close() | ||
199 | pCooked.cgroup = "" | ||
179 | } | 200 | } |