luca72 wrote:
On 5 Dic, 03:06, Carl Banks <pavlovevide...@gmail.com> wrote:
On Dec 4, 3:44 pm, luca72 <lucabe...@libero.it> wrote:



On 5 Dic, 00:14, luca72 <lucabe...@libero.it> wrote:
On 5 Dic, 00:03, luca72 <lucabe...@libero.it> wrote:
On 4 Dic, 23:23, Mike Driscoll <kyoso...@gmail.com> wrote:
On Dec 4, 3:50 pm, luca72 <lucabe...@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

The firs thing that i have tested is with the process id get by
Popen.pid ,but it don't works.
Thank

I'm no specialist of linux stuff but the google link suggests that child PID 
may not be killed when killing the parent PID.

When using shell=True, your process is started in a shell, meaning the PID of your subprocess is not self.luca.pid, self.luca.pid is the PID of the shell.

- You might try to kill the pid of your subprocess explicitly (you can't use self.luca.pid directly but you can filter the process list using this parentID) - If the argument shell=True is not absolutely required, you may set it to false, self.luca.pid will then *be* the pid of your process

JM
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to