luci-base: tweak busybox top regex to accept 'm' in large VSZ
authorHannu Nyman <hannu.nyman@iki.fi>
Sat, 19 Sep 2020 05:46:16 +0000 (08:46 +0300)
committerHannu Nyman <hannu.nyman@iki.fi>
Sat, 19 Sep 2020 05:46:16 +0000 (08:46 +0300)
Tweak the lua regex string for process list, so that processes
with extremely large memory sizes (over 100 MB) are matched.
For those large processes busybox top shows a MB value like '234m'
instead of a normal kB value like 234000.

Fixes #4425

Reference to https://github.com/openwrt/luci/issues/4425#issuecomment-694073479

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
modules/luci-base/luasrc/sys.lua

index c8ad5393e04c78b6a3d507282d477ae5f87526c4..bf21b5f191a71a2d6cc66cc1553767c543b0f1f2 100644 (file)
@@ -379,7 +379,7 @@ function process.list()
 
        for line in ps do
                local pid, ppid, user, stat, vsz, mem, cpu, cmd = line:match(
-                       "^ *(%d+) +(%d+) +(%S.-%S) +([RSDZTW][<NW ][<N ]) +(%d+) +(%d+%%) +(%d+%%) +(.+)"
+                       "^ *(%d+) +(%d+) +(%S.-%S) +([RSDZTW][<NW ][<N ]) +(%d+m?) +(%d+%%) +(%d+%%) +(.+)"
                )
 
                local idx = tonumber(pid)