Programmatic Parsing of ps
drsalists at gmail.com
Fri Feb 11 02:06:24 CET 2011
FWIW, Linux' /proc is very different from pretty much all other *ix's.
I like Linux' design better, but it might be good to put the Linux
/proc assumption in one place, in case you need to port to another *ix
On Thu, Feb 10, 2011 at 4:26 PM, bsergean <bsergean at gmail.com> wrote:
> If you're on Linux you should
> * Have a look at the /proc/ filesystem, there's probably what you want
> Here's a small script that print all the pid/cmd from the process ran
> with your user.
> import os
> import re
> import stat
> from os.path import join
> for pid in (pid for pid in os.listdir('/proc') if re.match('\d',
> cmdline_fn = join('/proc', pid, 'cmdline')
> cmdline = open(cmdline_fn).read()
> uid = os.stat(cmdline_fn)[stat.ST_UID]
> if os.getuid() == uid:
> print pid, cmdline
> For a more cross-platform solution there's a module that does that (I
> forgot it's name but with some googling you might find it)
> On Feb 9, 1:34 pm, Dan Stromberg <drsali... at gmail.com> wrote:
>> On Wed, Feb 9, 2011 at 11:15 AM, Emile van Sebille <em... at fenx.com> wrote:
>> > On 2/9/2011 10:58 AM octopusgrabbus said...
>> >> I have Python 2.6.6. I would like to get this output
>> >> ps -ef | grep 'fglgo csm'
>> >> into a list. What is the best way to do that? I've been reading the
>> >> documentation, and am lost.
>> >> Thank you.
>> >> cmn
>> > commands.getoutput
>> > Emile
>> Also, consider using "ps -eo pid,comm" (or similar) instead of ps -ef
>> - it should be easier to parse that way.
More information about the Python-list