-s option has start time in two columns, YYYYMMDD HH:MM:SS Cheers, John Reference: /n/sources/patch/saved/ps-start-time Date: Tue Apr 11 11:02:34 CES 2006 Signed-off-by: j.krug@lancaster.ac.uk --- /sys/src/cmd/ps.c Tue Apr 11 11:01:10 2006 +++ /sys/src/cmd/ps.c Tue Apr 11 11:01:08 2006 @@ -10,6 +10,7 @@ int pflag; int aflag; int rflag; +int sflag; void main(int argc, char *argv[]) @@ -28,6 +29,9 @@ case 'r': rflag++; break; + case 's': + sflag++; + break; } ARGEND; Binit(&bout, 1, OWRITE); if(chdir("/proc")==-1) @@ -60,7 +64,9 @@ { ulong utime, stime, rtime, size; int argc, basepri, fd, i, n, pri; - char args[256], *argv[16], buf[64], pbuf[8], rbuf[20], rbuf1[20], status[4096]; + char args[256], *argv[16], buf[64], pbuf[8], rbuf[20], rbuf1[20], sbuf[20], status[4096]; + Tm *tm; + long tnow=time(0); sprint(buf, "%s/status", s); fd = open(buf, OREAD); @@ -107,10 +113,19 @@ }else rbuf1[0] = 0; - Bprint(&bout, "%-10s %8s%s %4lud:%.2lud %3lud:%.2lud %s %7ludK %-8.8s ", + if(sflag){ + tm=localtime(tnow-rtime); + sprint(sbuf, " %d%02d%02d %02d:%02d:%02d", + 1900+tm->year, 1+tm->mon, tm->mday, + tm->hour, tm->min, tm->sec); + } else + sbuf[0] = 0; + + Bprint(&bout, "%-10s %8s%s%s %4lud:%.2lud %3lud:%.2lud %s %7ludK %-8.8s ", argv[1], s, rbuf1, + sbuf, utime/60, utime%60, stime/60, stime%60, pbuf, --- /sys/man/1/ps Tue Apr 11 11:01:22 2006 +++ /sys/man/1/ps Tue Apr 11 11:01:20 2006 @@ -4,12 +4,12 @@ .SH SYNOPSIS .B ps [ -.B -apr +.B -aprs ] .PP .B psu [ -.B -apr +.B -aprs ] [ .I user @@ -81,6 +81,12 @@ waiting for more of a critical .IR resource . .PD +.PP +The +.B -s +flag causes +.I ps +to print, before the user time, the local start time for the process. .PP The .B -r