Introduction
Introduction Statistics Contact Development Disclaimer Help
tps - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
tps (2022B)
---
1 #!/bin/sh
2
3 I_WANT_A_BROKEN_PS=yes
4 export I_WANT_A_BROKEN_PS
5 all=no
6 if [ "x$1" = "x-a" ]
7 then
8 all=yes
9 fi
10 export all
11
12 cat >/tmp/awk.xxx$$ <<'!'
13 BEGIN{
14 state["D"] = "Spinwait";
15 state["I"] = "Idle";
16 state["J"] = "Jail";
17 state["R"] = "Ready";
18 state["O"] = "Running";
19 state["S"] = "Sleep";
20 state["T"] = "Stopped";
21 state["Z"] = "Zombie";
22 state["W"] = "Fault";
23 state["X"] = "Moribund";
24 }
25
26 function statestr(s, wchan)
27 {
28 if(wchan != s && wchan != "?" && wchan != "-")
29 return wchan;
30 t = state[substr(s, 1, 1)];
31 if(t == "")
32 return s;
33 return t;
34 }
35
36 # rsc 36706 starttime 0:00.17 1076 Is+ -bash (bash)
37 {
38 i=1
39 user=$i; i++
40 pid=$i; i++
41 start=$i; i++
42 if(start ~ /^[A-Z][a-z][a-z]$/){
43 start = start "-" $i; i++
44 }
45 cputime=$i; i++
46 mem=$i; i++
47 stat=$i; i++
48 wchan=$i; i++
49 cmd=$i; i++
50 if(ENVIRON["all"] == "yes"){
51 for(; i<=NF; i++)
52 cmd = cmd " " $i;
53 }else{
54 sub(/.*\//, "", cmd);
55 sub(/:$/, "", cmd);
56 sub(/^-/, "", cmd);
57 s = " " cmd;
58 }
59 sub(/\.[0-9][0-9]$/, "", cputime); # drop .hundredths of …
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]);
63 }
64 if(start ~ /..:..:../){ # drop :ss
65 sub(/:..$/, "", start);
66 }
67 sub(/[ ]+$/, "", cmd);
68 line[0+nline++] = sprintf("%s\001%d\001%s\001%s\001%dK\001%s\001…
69 user, pid, start, cputime, mem, statestr(stat, wchan), c…
70 }
71
72 END{
73 for(i=0; i<nline; i++){
74 split(line[i], a, "\001");
75 for(j=1; j<=7; j++)
76 if(length(a[j]) > max[j])
77 max[j] = length(a[j]);
78 }
79 for(i=0; i<nline; i++){
80 split(line[i], a, "\001");
81 printf("%-*s %*s %*s %*s %*s %-*s %s\n",
82 max[1], a[1], max[2], a[2], max[3], a[3], max[4]…
83 max[5], a[5], max[6], a[6], a[7]);
84 }
85 }
86 !
87
88 case "${SYSNAME:-`uname`}" in
89 SunOS)
90 /bin/ps -aA -o 'user,pid,stime,time,rss,s,s,args' | sed 1d |
91 nawk -f /tmp/awk.xxx$$ | sort -n +1
92 ;;
93 *)
94 /bin/ps -axww -o 'user,pid,start,time,rss,stat,wchan,command' | …
95 awk -f /tmp/awk.xxx$$ | sort -n +1
96 ;;
97 esac
98
99 rm -f /tmp/awk.xxx$$
100
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.