PATCH for 'ps -p <n>' in current

Garance A Drosihn drosih at rpi.edu
Tue Mar 16 14:05:27 PST 2004


At 9:40 PM -0500 3/8/04, Garance A Drosihn wrote:
>
>On stable, if you say 'ps -p <n>', and there is no process '<n>',
>then you get the header-line from 'ps' and nothing else.  The
>command-status is set to indicate failure.
>
>On -current, the same command gives you the error message:
>
>ps: kvm_getprocs: No such process
>
>and you get no header line.  Other OS's also give you the header
>line and no special error message.
>
>In some other OS's, 'ps' behaves the way it does for us in -stable.
>Looking at SUSv3, it's not clear to me if either behavior is
>preferred.

Here is the patch that I came up with for ps.c.  While I was at
it, I changed 'ps' so it accepts a list of pid's, as is described
in SUSv3.  I print out a warning message for any "pid value" which
would never match valid pid, but I do not consider it an error
unless all of the given pid's are invalid.

It's probably bogus to #define 'BSD_PID_MAX' in here, but I did
want to catch the case where a user types in a valid number which
the system would never ever match to a process.  Is there some
routine I could call to get that value (the real value, not just
"the max value that fits in pid_t").  Other than that quirk, this
is patterned after how 'ps' presently handles a list of userids.

The patch has been tested on freebsd/i386 and freebsd/sparc64.
Since I imagine this email would be too long or too "spam-looking"
if I included the entire patch in this message, I have it at:

http://people.freebsd.org/~gad/ps-p.diff

-- 
Garance Alistair Drosehn            =   gad at gilead.netel.rpi.edu
Senior Systems Programmer           or  gad at freebsd.org
Rensselaer Polytechnic Institute    or  drosih at rpi.edu


More information about the freebsd-current mailing list