2012-05-26 3 views
0

J'ai un script wrapper, à l'intérieur qu'il y a beaucoup d'autres scripts de test. À l'intérieur de l'un des scripts de test, je fais un sous-processus en utilisant la classe Popen. Le problème est que je ne sais pas comment terminer ce processus enfant et retourner au processus principal et continuer avec le prochain script de test. Mon wrapper s'arrête au script de test qui a le processus fils et ne continue jamais. Pouvez-vous donner un indice? THX. P.S. kill() ou terminate() ou toute autre fonction que je considère utile, ne me remet pas dans le processus principal. Je veux terminer le sous-processus et continuer avec le processus principal. Conserver une référence à l'enfant dans le script principal.Terminer le sous-processus en Python

+2

Comment .terminate voulez-vous dire() ne continue pas le processus principal? –

Répondre

0

Avec cette référence appeler le terminate()

from subprocess import Popen 

class TestApp(object): 
    app = None 

    def start(self): 
     self.app = Popen(['your command']) 

    def stop(self): 
     self.app.terminate() 

Dans le script principal:

app1 = TestApp() 
app1.start() 
app2 = TestApp() 
app2.start() 
#do something here 
app1.stop() 
app2.stop() 
#do more here 
Questions connexes