| tuse os-provided state strings - plan9port - [fork] Plan 9 from user space | |
| git clone git://src.adamsgaard.dk/plan9port | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit c57a7371ba73df79aecdf64addf4254ef61e6b29 | |
| parent 88f2c3b0b7cd18669e63d990ee15e8e6486c407d | |
| Author: rsc <devnull@localhost> | |
| Date: Mon, 19 Apr 2004 05:51:59 +0000 | |
| use os-provided state strings | |
| Diffstat: | |
| M bin/ps | 11 +++++++---- | |
| 1 file changed, 7 insertions(+), 4 deletions(-) | |
| --- | |
| diff --git a/bin/ps b/bin/ps | |
| t@@ -23,8 +23,10 @@ BEGIN{ | |
| state["X"] = "Moribund"; | |
| } | |
| -function statestr(s) | |
| +function statestr(s, wchan) | |
| { | |
| + if(wchan != s && wchan != "?") | |
| + return wchan; | |
| t = state[substr(s, 1, 1)]; | |
| if(t == "") | |
| return s; | |
| t@@ -43,6 +45,7 @@ function statestr(s) | |
| cputime=$i; i++ | |
| mem=$i; i++ | |
| stat=$i; i++ | |
| + wchan=$i; i++ | |
| cmd=$i; i++ | |
| if(ENVIRON["all"] == "yes"){ | |
| for(; i<=NF; i++) | |
| t@@ -62,17 +65,17 @@ function statestr(s) | |
| sub(/:..$/, "", start); | |
| } | |
| printf("%-8s %11d %8s %8s %8dK %-8s %s\n", | |
| - user, pid, start, cputime, mem, statestr(stat), cmd); | |
| + user, pid, start, cputime, mem, statestr(stat, wchan), cmd); | |
| } | |
| ! | |
| case "${SYSNAME:-`uname`}" in | |
| SunOS) | |
| - /bin/ps -aA -o 'user,pid,stime,time,vsz,s,args' | sed 1d | | |
| + /bin/ps -aA -o 'user,pid,stime,time,vsz,s,s,args' | sed 1d | | |
| nawk -f /tmp/awk.xxx$$ | sort -n +1 | |
| ;; | |
| *) | |
| - /bin/ps -axww -o 'user,pid,start,time,vsz,stat,command' | sed 1d | | |
| + /bin/ps -axww -o 'user,pid,start,time,vsz,stat,wchan,command' | sed 1d… | |
| awk -f /tmp/awk.xxx$$ | sort -n +1 | |
| ;; | |
| esac |