subprocess kill

Carl Banks pavlovevidence at gmail.com
Fri Dec 4 21:06:23 EST 2009


On Dec 4, 3:44 pm, luca72 <lucabe... at libero.it> wrote:
> On 5 Dic, 00:14, luca72 <lucabe... at libero.it> wrote:
>
>
>
>
>
> > On 5 Dic, 00:03, luca72 <lucabe... at libero.it> wrote:
>
> > > On 4 Dic, 23:23, Mike Driscoll <kyoso... at gmail.com> wrote:
>
> > > > On Dec 4, 3:50 pm, luca72 <lucabe... at libero.it> wrote:
>
> > > > > Hello i'm using subprocess in this way:
> > > > > self.luca = subprocess.Popen(['/usr/bin/
> > > > > dvbtune'+frase_sint],shell=True, stdout=self.f_s_l,stderr=self.f_s_e )
>
> > > > > then i kill:
> > > > > self.luca.Kill()
>
> > > > > but the process is still active and the file self.f_s_l increase it
> > > > > size because the process is not killed.
>
> > > > > How i can kill the process?
> > > > > Regards
>
> > > > > Luca
>
> > > > Seehttp://lmgtfy.com/?q=python+kill+subprocess+linux
>
> > > > When I do that on my machine, the 2nd result has the answer:
>
> > > >http://stackoverflow.com/questions/1064335/in-python-2-5-how-do-i-kil...
>
> > > > -------------------
> > > > Mike Driscoll
>
> > > > Blog:  http://blog.pythonlibrary.org
>
> > > Hello Mike i have also test but they never kill the process the file
> > > (stdout=self.f_s_l) increase it's size, haveyou some idea.
> > > also if i close the program the process is still active.
>
> > > Regards
>
> > > Luca
>
> > i'm able only to kill via shell like kill -9 process pid, Why?
>
> Now the only way to solve the problem is to call a c program that kill
> the process via subprocess in other case i can't close it, i have also
> try with
>
> subprocess.Popen(['kill -9 dvbtune'] shell=True), but the process is
> still active

This is not working because the kill command does not accept the name
of a program.  You have to give it a process id.

As for your general question, we really can't answer it.  There a lot
of reasons a process might not die when you try to kill it: it could
be trapping and ignoring signals (which is rude but it happens), it
could be stuck in a critical section, the program might be threaded
and not handling signals well, the program might have forked itself
and the original process id has disappeared, etc.  We can't read your
mind or divine what's running on your computer, so we can't answer
your question.  We can only suggest things that might be wrong.  It's
up to you to investigate and/or dig deeper.


Carl Banks



More information about the Python-list mailing list