On 02/01/2012 23:09, Jérôme wrote:
Hi all.When a subprocess is running, it can be sent a signal with the send_signal method : process = Popen( args) process.send_signal(signal.SIGINT) If the SIGINT is sent while the process has already finished, an error is raised : File "/usr/lib/python2.7/subprocess.py", line 1457, in send_signal os.kill(self.pid, sig) OSError: [Errno 3] Aucun processus de ce type To avoid this, I can check that the process is still alive : process = Popen( args) process.poll() if (None == process.returncode): process.send_signal(signal.SIGINT) It makes safer, but there is still an issue if the process ends between poll() and send_signal(). What is the clean way to avoid this race condition ? Should I use try/except to catch the error or is there a more elegant way to go ?
I think that catching the exception is probably the most Pythonic way. -- http://mail.python.org/mailman/listinfo/python-list
