[Python-Dev] Functionality in subprocess.Popen.terminate()

Nick Coghlan ncoghlan at gmail.com
Wed Aug 5 12:43:12 CEST 2009


Janzert wrote:
> Eric Pruitt wrote:
>> Sounds good enough to me but I was wondering if it might be a good
>> idea to add a function like "pidinuse" to subprocess as a whole that
>> would determine if a process ID was being used and return a simple
>> boolean value. I came across a number of people searching for a way to
>> determine if a PID was running (Google "python check if pid exists")
>> so it seems like the implemented functionality would be of use to the
>> community as a whole, not just my wrapper class.
>>
>> Eric
>>
> 
> I'm not sure of the actual details but it seems from your description
> that even if you check first a race condition will still exist.
> Specifically the subprocess could terminate after the check and before
> the TerminateProcess call. So it seems better just to call
> TerminateProcess and then correctly handle any possible error.

Janzert is correct here - this is a case where ruling out the error
completely is impossible, so you're going to have to handle it regardless.

A cross platform way of checking if a particular subprocess is still
running might be an interesting feature in its own right, but I don't
think it will prevent this exception.

Cheers,
Nick.


-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------


More information about the Python-Dev mailing list