views:

249

answers:

1

I want to get the list of running processes on the Mac, similar to what you get from 'ps -ea'

I have tried os.popen('ps -ea') but this only lists a small subset of the processes, presumably those owned by the owning shell.

Other options I have tried are

'sh -c /bin/ps -ea'
'bash -c /bin/ps -ea'
'csh -c /bin/ps -ea'
Running as root via sudo
data = subprocess.Popen(['ps','ea'], stdout=subprocess.PIPE).stdout.readlines()

What other methods are there that might give me the full process information listing?

This is for a wx python app to monitor specific processes and spot when they die.

+3  A: 

os.popen('ps aux') looks like it's listing all processes for me.

Mike Akers
and it does for me too! Thanks.
David Sykes
Try using `subprocess.Popen` -- it's the preferred approach.
S.Lott
data = subprocess.Popen(['ps','aux'], stdout=subprocess.PIPE).stdout.readlines() works just as well
David Sykes