need help to kill a process

Gabriel Genellina gagsl-py at yahoo.com.ar
Tue Feb 6 23:24:54 EST 2007


En Tue, 06 Feb 2007 22:59:40 -0300, <elrondrules at gmail.com> escribió:

> this is my code snip.
> within my python script I have the following commands..
>
> <snip>
>
> import os
> ...
> os.system ("cd /home; ./TestTool &")
> os.system ("cd /usr/; sh run.sh load.xml &")
>
> <snip>
>
> I need to kill these 2 process after a particular job is done.. is
> there any way to get the pids of these process and if so how do i
> invoke the kill command through os.system..
>
> or else is there anyother way to do this...

If you're using Python>=2.4 you could use the subprocess module.

import subprocess
child1 = subprocess.Popen(["./TestTool"], cwd="/home")
child2 = subprocess.Popen(["sh","run.sh","load.xml"], cwd="/usr")

Popen objects have a pid attribute. You don't have to use os.system to  
kill them; use os.kill instead.
You'll notice that I leave out the final &, because I don't know how to  
start a background process without using the shell. But I think you can  
use: bg [pid], afterwards, to get the same result.

-- 
Gabriel Genellina




More information about the Python-list mailing list