Question on 'ps -p <n>' in current
Ruslan Ermilov
ru at freebsd.org
Tue Mar 9 00:58:59 PST 2004
On Mon, Mar 08, 2004 at 09:40:21PM -0500, Garance A Drosihn wrote:
> This topic may have come up before, a long time ago, and I just
> missed it. If so, apologies for the repeat.
>
> 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.
>
> I think this behavior in current is an unplanned side-effect of
> the change in revision 1.46 of
> http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libkvm/kvm_proc.c
>
> where that was fixing a side-effect of a fix in revision 1.60
> of malloc.c.
>
I don't think that rev. 1.46 is the problem. The sysctl is what
returns ESRCH if no process exists. In RELENG_4, it returns 0.
See sys/kern/kern_proc.c:sysctl_kern_proc(), the handing of
KERN_PROC_PID. The semantics has been changed in rev. 1.192.
> 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.
>
> Should 'ps' in this situation behave like it does in -stable? Or
> is this a change that we deliberately wanted to make in -current?
> I would be willing to change 'ps' if people prefer the earlier
> behavior, but I'll leave it alone if this was an intentional change.
>
I believe that the current behavior of KERN_PROC_PID is correct.
I personally don't care how ps(1) should behave if no PID exists.
Cheers,
--
Ruslan Ermilov
FreeBSD committer
ru at FreeBSD.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20040309/fe1aa9bc/attachment.bin
More information about the freebsd-current
mailing list