Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Mar 2004 15:34:24 +0100
From:      Jilles Tjoelker <jilles@stack.nl>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        Garance A Drosihn <drosih@rpi.edu>
Subject:   Re: Adding `pgrep' and `pkill' to /usr/bin
Message-ID:  <20040326143423.GD71731@stack.nl>
In-Reply-To: <20040325211636.GC3446@dan.emsphone.com>
References:  <p0602046abc879c5fe2f9@[128.113.24.47]> <20040325070120.GA67497@VARK.homeunix.com> <20040325211636.GC3446@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 25, 2004 at 03:16:36PM -0600, Dan Nelson wrote:
> In the last episode (Mar 24), David Schultz said:
> > I think it would be *great* to import any and all of the Solaris proc
> > tools into FreeBSD.  I tend to think of these utilities as ps(1),
> > fstat(1), and friends done the proper Unix way (with lots of simple
> > tools that can be combined for powerful effect.) For those who
> > haven't seen the rest of the tools, take a look at:

> > 	http://www.freebsd.org/cgi/man.cgi?query=proc&manpath=SunOS+5.9

> Some of these already exist or would be trivial to add:

> pstack is in ports, and can decode libc_r threads.

It works, but the fact that most binaries are stripped doesn't help it.

> pwdx could be a wrapper around fstat?

How would you obtain the full pathname of the directory? fstat cannot do
it, but lsof can. In principle it is possible, since every directory has
at most one name.

> pstop and prun are just wrappers around kill -{STOP|CONT} $@

No, they're not. kill -STOP notifies the parent process if it's in
a wait()-like function with the WUNTRACED option set (e.g. job control
shell), and SIGCONT is often caught (to redraw the screen, for example).
pstop and prun don't have any of those effects. It's the same kind of
"stop" that debuggers use.

> pwait would make wait_for_pids() in rc.subr simpler

I've made an implementation of pwait using kqueue(2):
http://www.stack.nl/~jilles/unix/pwait.tar.gz. It's pretty simple.

I doubt whether it's worth putting another program in /bin to make that
function simpler, though.

> pstree is in ports and looks similar to ptree

It would still require some work.

-- 
Jilles Tjoelker



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