[issue21504] can the subprocess module war using os.wait4 and so return usage?

donald petravick report at bugs.python.org
Thu May 15 03:09:19 CEST 2014


donald petravick added the comment:

Victor, thanks so much for reading my ticket and contacting me.

I prototyped what makes sense to me by subclassing subprocess.Popen and
Over-ridden the wait method to do what I suggested. Proof of concept
attached.  \
It¹s  a bit of a hack since I cribbed code from Popen.wait().

Now that you¹ve made me think harder,  The use case that stood out was the
case 
where I called the communicate() method which both handles IO and the
termination 
of the process AFAICT.

I _do_ understand the portability argument you are making (and am clueless
about
what¹s to be done with windows).

 ‹ Thanks
‹  Don

On 5/14/14, 5:28 PM, "STINNER Victor" <report at bugs.python.org> wrote:

>
>STINNER Victor added the comment:
>
>I guess that you mean "Popen" when you write "Pipe"?
>
>Even if Popen has a high-level wait() method implemented with
>os.waitpid(), you are free to use a low-level function using the pid
>attribute.
>
>proc = subprocess.Popen(...)
>os.wait4(proc.pid, ...)
>
>> have an new data member, rusage, make the resource usage available to
>>the caller.
>
>I don't know how to get the rusage of a specific child process, but you
>can use resource.getrusage(resource.RUSAGE_CHILDREN) which gives the
>usage of *all* child processes. Again, you have the pid, and so you are
>free to use any function to retrieve the resource usage of the child
>process. See also this project which can help you:
>https://pypi.python.org/pypi/psutil
>
>I don't think that the subprocess should be modified to your use case,
>it's already possible to implement you use cases without modify it.
>Python is a (very) portable language, and it's very hard to provide the
>same API for such low-level metrics (rusage). I don't think that Windows
>provides exactly the same data for example.
>
>You can build your own module on top of subprocess and other modules like
>psutil.
>
>----------
>nosy: +haypo
>
>_______________________________________
>Python tracker <report at bugs.python.org>
><http://bugs.python.org/issue21504>
>_______________________________________
>

----------
Added file: http://bugs.python.org/file35256/subprocess4.pyc

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue21504>
_______________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: subprocess4.pyc
Type: application/octet-stream
Size: 1402 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-bugs-list/attachments/20140515/e7f1ef96/attachment.obj>


More information about the Python-bugs-list mailing list