Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Mar 2004 17:05:20 -0500
From:      Garance A Drosihn <drosih@rpi.edu>
To:        current@freebsd.org
Subject:   Re: PATCH for 'ps -p <n>' in current
Message-ID:  <p0602040fbc7d27516eb5@[128.113.24.47]>
In-Reply-To: <p060204e7bc72d891f49a@[128.113.24.47]>
References:  <p060204e7bc72d891f49a@[128.113.24.47]>

next in thread | previous in thread | raw e-mail | index | archive | help
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@gilead.netel.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p0602040fbc7d27516eb5>