Programmatic Parsing of ps
bsergean
bsergean at gmail.com
Thu Feb 10 19:26:58 EST 2011
If you're on Linux you should
* Have a look at the /proc/ filesystem, there's probably what you want
there.
Here's a small script that print all the pid/cmd from the process ran
with your user.
#!/usr/local/bin/python
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',
pid)):
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
mailing list