strange subprocess behavior when calling ps
crebert at ucsd.edu
Wed Nov 17 04:13:16 CET 2010
On Tue, Nov 16, 2010 at 6:33 PM, Roger Davis <rbd at hawaii.edu> wrote:
> Hi all,
> I have encountered a strange problem with some code I am writing to
> search the system process list for certain running processes. I am
> using subprocess.Popen() to call '/bin/ps -e'. When I save my code to
> the file pid.py (whose first line is #!/usr/bin/python) and run it
> with the command
> % ./pid.py
> it works perfectly fine, retrieving lines from my pipe to the /bin/ps
> output which look exactly as if I had typed the command '/bin/ps -e'
> myself into a shell window. Here is a sample line from that output:
> 1891 ttys000 0:00.12 -tcsh
> Now for the weird part -- when I run this code using the command
> % python pid.py
> I get entirely different output. It only prints out a very few
> processes instead of the entire table, and each line also has lots of
> environment variable values displayed.
> It's like it's calling up an entirely different ps, or passing it
> different command arguments. In both cases, however, I am explicitly
> calling /bin/ps with the same -e argument, and there appear to be no
> other ps commands on my system, neither do I appear to have any ps
> builtin command in any shell.
> I am running 2.6.6 under MacOS 10.6.4 on a MacBook Pro Intel. I have
> appended the code below. I am running both commands directly in a
> Terminal window running tcsh.
> Can anyone explain this? Thanks!
> ##### code follows
Have you checked whether those commands are running under the same
Python? What output do you get from tcsh for the following?:
ls -l /usr/bin/python
Also, did you upgrade your system Python or something? I'm running Mac
OS 10.6.5 and the built-in /usr/bin/python is v2.6.1, so I find the
implied claim that your /usr/bin/python is v2.6.6 to be rather
I am unable to reproduce your problem with either my v2.6.1 system
Python or my v2.6.6 Python from Fink.
More information about the Python-list