MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / readStatus

Function readStatus

agent/app/service/process.go:228–272  ·  view source on GitHub ↗
(pid int32, mem *MemoryDetail)

Source from the content-addressed store, hash-verified

226}
227
228func readStatus(pid int32, mem *MemoryDetail) error {
229 filePath := fmt.Sprintf("/proc/%d/status", pid)
230 file, err := os.Open(filePath)
231 if err != nil {
232 return err
233 }
234 defer file.Close()
235
236 scanner := bufio.NewScanner(file)
237
238 for scanner.Scan() {
239 line := scanner.Text()
240 fields := strings.Fields(line)
241 if len(fields) < 2 {
242 continue
243 }
244
245 key := strings.TrimSuffix(fields[0], ":")
246 value, _ := strconv.ParseUint(fields[1], 10, 64)
247 value *= 1024
248
249 switch key {
250 case "VmRSS":
251 mem.RSS = value
252 case "VmSize":
253 mem.VMS = value
254 case "VmData":
255 mem.Data = value
256 case "VmSwap":
257 mem.Swap = value
258 case "VmExe":
259 mem.Text = value
260 case "RssShmem":
261 mem.Shared = value
262 case "VmHWM":
263 mem.HWM = value
264 case "VmStk":
265 mem.Stack = value
266 case "VmLck":
267 mem.Locked = value
268 }
269 }
270
271 return scanner.Err()
272}
273
274func readSmapsRollup(pid int32, mem *MemoryDetail) error {
275 filePath := fmt.Sprintf("/proc/%d/smaps_rollup", pid)

Callers 1

getMemoryDetailFunction · 0.85

Calls 2

CloseMethod · 0.65
ScanMethod · 0.65

Tested by

no test coverage detected