4 export I_WANT_A_BROKEN_PS
12 cat >/tmp/awk.xxx$$ <<'!'
14 state["D"] = "Spinwait";
18 state["O"] = "Running";
20 state["T"] = "Stopped";
21 state["Z"] = "Zombie";
23 state["X"] = "Moribund";
26 function statestr(s, wchan)
28 if(wchan != s && wchan != "?" && wchan != "-")
30 t = state[substr(s, 1, 1)];
36 # rsc 36706 starttime 0:00.17 1076 Is+ -bash (bash)
42 if(start ~ /^[A-Z][a-z][a-z]$/){
43 start = start "-" $i; i++
50 if(ENVIRON["all"] == "yes"){
59 sub(/\.[0-9][0-9]$/, "", cputime); # drop .hundredths of second
60 if(cputime ~ /..:..:../){ # convert hh:mm:ss into mm:ss
61 split(cputime, a, ":");
62 cputime = sprintf("%d:%02d", a[1]*60+a[2], a[3]);
64 if(start ~ /..:..:../){ # drop :ss
65 sub(/:..$/, "", start);
67 printf("%-8s %11d %8s %8s %8dK %-8s %s\n",
68 user, pid, start, cputime, mem, statestr(stat, wchan), cmd);
72 case "${SYSNAME:-`uname`}" in
74 /bin/ps -aA -o 'user,pid,stime,time,rss,s,s,args' | sed 1d |
75 nawk -f /tmp/awk.xxx$$ | sort -n +1
78 /bin/ps -axww -o 'user,pid,start,time,rss,stat,wchan,command' | sed 1d |
79 awk -f /tmp/awk.xxx$$ | sort -n +1