First off, I really like what this case is trying to do.  But I do have 
a possible concern:  /usr/ucb/ps could have been used with  a leading 
"-".  E.g. /usr/ucb/ps -aux and /usr/ucb/ps aux both return the same thing.

I'd humbly suggest that if getexecname returns /usr/ucb/ps then the 
legacy UCB behavior should be used unconditionally.

Since /usr/bin/ps never supported bare arguments, I think its reasonable 
if it it supports the UCB syntax when no bare (no "-") options are present.

I suspect that this would give both maximum compatibility, without 
significantly impairing the nice "familiarity" benefits that I think 
we're hoping to achieve.

With the above change, I'll give it a +100 (okay, only 1, because that's 
all I'm allowed.)  Without the above change, I'd be a bit more hesitant, 
since I worry about scripts that have coded /usr/ucb/ps with a leading 
dash ...)

    -- Garrett

Casper Dik wrote:
> Template Version: @(#)sac_nextcase %I% %G% SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>        Unified ps(1)
>     1.2. Name of Document Author/Supplier:
>        Author:  Casper Dik
>     1.3  Date of This Document:
>       09 February, 2009
> 4. Technical Description
> I'm sponsoring this fasttrack for myself.
>
> I request Patch/Micro release binding (this change is compatible).
>
> We currently ship two "ps" executables: /usr/bin/ps and /usr/ucb/ps.
>
> Some people prefer "ps -ef" and others like "ps uxga".
>
> It's fairly easy to unify the commands so that we do the "right thing".
>
> We propose that the unified command works as follows:
>
>       If a first argument is present and it does not start with a "-" we run
>       as "/usr/ucb/ps"
>
>       If a first argument is present and it starts with "-" and some of the
>       characters passed aren't ucb ps options, we run as "/usr/bin/ps"
>
>       If neither are not the case, then ps will behave as before: /usr/ucb/ps
>       and /usr/bin/ps will both work as before, depending on the
>       getexecname() return value.
>
> The /usr/ucb/*/ps binaries will be hardlinked to /usr/bin/*/ps.
> They will stay in their respective packages.
>
> The /usr/ucb/sparcv7/ps binary is removed; there is no /usr/bin/sparcv7/ps.
>
> Sample
>
> with /usr/bin first in $PATH
>
> # ps -ef
>      UID   PID  PPID   C    STIME TTY         TIME CMD
>     root     0     0   0 22:10:42 ?           0:01 sched
>     root     1     0   0 22:10:44 ?           0:02 /sbin/init
>     root     2     0   0 22:10:44 ?           0:00 pageout
>     root     3     0   0 22:10:44 ?           1:22 fsflush
>
> # ps uxga
> USER       PID %CPU %MEM   SZ  RSS TT       S    START  TIME COMMAND
> root       751  0.2  2.62818426328 ??       S 22:12:42  0:05 xterm -ls -n 
> moloc
> root         3  0.1  0.0    0    0 ?        S 22:10:43  1:21 fsflush
> root     19210  0.1  0.1 1832 1112 pts/1    O 11:31:40  0:00 ps uxga
> root     19207  0.1  0.3 4640 2800 pts/1    S 11:31:04  0:00 ksh93
>
> # ps -uxga
> ps: unknown user xga
>
> # ps xa
>    PID TT       S  TIME COMMAND
>      0 ?        T  0:00 sched
>      1 ?        S  0:02 /sbin/init
>      2 ?        S  0:00 pageout
>      3 ?        S  1:21 fsflush
>
> # ps -xa
> ps: illegal option -- x
> usage: ps [ -aAdefHlcjLPyZ ] [ -o format ] [ -t termlist ]
> .....
>
> # ps -e
>   PID TTY         TIME CMD
>     0 ?           0:01 sched
>     1 ?           0:02 init
>     2 ?           0:00 pageout
>     3 ?           1:22 fsflush
>
> with /usr/ucb first in $PATH
>
> # ps -ef
>      UID   PID  PPID   C    STIME TTY         TIME CMD
>     root     0     0   0 22:10:42 ?           0:01 sched
>     root     1     0   0 22:10:44 ?           0:02 /sbin/init
>     root     2     0   0 22:10:44 ?           0:00 pageout
>     root     3     0   0 22:10:44 ?           1:22 fsflush
>
> # ps -ax
>    PID TT       S  TIME COMMAND
>      0 ?        T  0:00 sched
>      1 ?        S  0:02 /sbin/init
>      2 ?        S  0:00 pageout
>      3 ?        S  1:21 fsflush
>
> # ps -ugxa
> USER       PID %CPU %MEM   SZ  RSS TT       S    START  TIME COMMAND
> root       751  0.2  2.62818426328 ??       S 22:12:42  0:06 xterm -ls -n 
> moloc
> root       605  0.2  0.3 3720 3104 ?        S 22:12:31  0:01 
> /usr/lib/autofs/au
> root         3  0.1  0.0    0    0 ?        S 22:10:43  1:21 fsflush
> root     19220  0.1  0.1 1816 1104 pts/1    O 11:34:38  0:00 ps -ugxa
>
> # ps -e
>    PID TT       S  TIME COMMAND
>   3008 console  S  0:00 /usr/lib/saf/ttymon -g -d /dev/console -l console -T 
> xt
>   1061 pts/1    S  0:01 -tcsh SUPER_USER=casper DISPLAY=localhost:10.0 HOME=/ 
> L
>  19207 pts/1    S  0:00 ksh93 SUPER_USER=casper DISPLAY=localhost:10.0 HOME=/ 
> L
>  19261 pts/1    O  0:00 ps -e _=/usr/ucb/ps DISPLAY=localhost:10.0 EXINIT=set 
> t
>
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               os-net
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   


Reply via email to