On Sun, 31 Aug 2008 23:25:56 -0700 (PDT), Johny wrote:
To get a number of the http processes running on my Linux( Debia box)
I use
ps -ef | grep "[h]ttpd" | wc -l
....
So my question is:
Is it possible to get a number of the http processes running on Linux
directly from Python ?
Yes, it is. There is a number of third party packages that provide
such functionality, including PSI:
http://www.psychofx.com/psi/
I never actually liked them, because they are parsing /proc directory
by themselves. Thus I wrote my own tool that is a wrapper around
procps library (libproc* in your /lib, probably). Your system tools
like ps, w or top are using this library. My wrapping library is
available at:
http://code.google.com/p/procpy/
In your case you could use it like this:
>>import procpy
pp = procpy.Proc()
for pid in pp.pids:
.... if pp.procs[pid]['cmd'] == 'apache2':
.... print pp.procs[pid]['tid']
....
5204
5205
5206
5208
>>>
it prints the PIDs of all the apache2 processes on my system.
Procpy is fine for my own needs, but if I were about to write
a code that is intended to be portable, I'd use PSI. It also is
more mature.
--
Regards,
Wojtek Walczak,
http://tosh.pl/gminick/