Commit Diff


commit - 88f2c3b0b7cd18669e63d990ee15e8e6486c407d
commit + c57a7371ba73df79aecdf64addf4254ef61e6b29
blob - d7e0767f5ac7baf7aa6fed3470059f2e658c59c2
blob + 25384ccb9dab5fcf7de9296262542acaa59052a9
--- bin/ps
+++ bin/ps
@@ -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;
@@ -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++)
@@ -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