diff options
author | Elliott Hughes <enh@google.com> | 2016-05-05 10:27:56 -0700 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2016-05-05 22:08:10 -0500 |
commit | 942bf0ca665192ec3f5bae6821a64de09db9350e (patch) | |
tree | 8ebaf6980ed1820ef07c575240b78c176bd43e8a | |
parent | 290774d79914e668c40755dd88e71afb35d6afbc (diff) | |
download | toybox-942bf0ca665192ec3f5bae6821a64de09db9350e.tar.gz |
Add top -H.
Also enable the same behavior we have with ps, where adding a thread-related
field implies that you're interested in threads.
Also clean up the help text slightly --- we're still not including the
TOP_COMMON help, but at least when we do, we'll have each option covered with
no duplicates.
-rw-r--r-- | toys/posix/ps.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/toys/posix/ps.c b/toys/posix/ps.c index 6b89c5ff..bfd6807a 100644 --- a/toys/posix/ps.c +++ b/toys/posix/ps.c @@ -45,7 +45,7 @@ USE_PS(NEWTOY(ps, "k(sort)*P(ppid)*aAdeflMno*O*p(pid)*s*t*Tu*U*g*G*wZ[!ol][+Ae]", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE)) // stayroot because iotop needs root to read other process' proc/$$/io -USE_TOP(NEWTOY(top, ">0m" "k*o*p*u*s#<1=9d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE)) +USE_TOP(NEWTOY(top, ">0m" "Hk*o*p*u*s#<1=9d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_LOCALE)) USE_IOTOP(NEWTOY(iotop, ">0AaKO" "k*o*p*u*s#<1=7d#=3<1n#<1bq", TOYFLAG_USR|TOYFLAG_BIN|TOYFLAG_STAYROOT|TOYFLAG_LOCALE)) USE_PGREP(NEWTOY(pgrep, "?cld:u*U*t*s*P*g*G*fnovxL:[-no]", TOYFLAG_USR|TOYFLAG_BIN)) USE_PKILL(NEWTOY(pkill, "Vu*U*t*s*P*g*G*fnovxl:[-no]", TOYFLAG_USR|TOYFLAG_BIN)) @@ -70,7 +70,7 @@ config PS -P Parent PIDs (--ppid) -s In session IDs -t Attached to selected TTYs - -T Show Threads + -T Show threads -u Owned by USERs -U Owned by real USERs (before suid) @@ -126,10 +126,11 @@ config TOP bool "top" default y help - usage: top [-m] [ -d seconds ] [ -n iterations ] + usage: top [-H] [-k FIELD,] [-o FIELD,] [-s SORT] Show process activity in real time. + -H Show threads -k Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID) -o Show FIELDS (def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE) -s Sort by field number (1-X, default 9) @@ -155,7 +156,7 @@ config TOP_COMMON bool default y help - usage: COMMON [-bq] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,] [-s SORT] + usage: COMMON [-bq] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,] -b Batch mode (no tty) -d Delay SECONDS between each cycle (default 3) @@ -1263,7 +1264,9 @@ static void top_common( plold = plist+(tock++&1); plnew = plist+(tock&1); plnew->whence = millitime(); - dt = dirtree_read("/proc", get_ps); + dt = dirtree_read("/proc", + ((toys.optflags&FLAG_H) || (TT.bits&(_PS_TID|_PS_TCNT))) + ? get_threads : get_ps); plnew->tb = collate(plnew->count = TT.kcount, dt); TT.kcount = 0; |