Prozess wieder beenden ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Hallo,
mein Prozesshandler soll mit os.popen() einen zweiten Prozess (Script) starten. Macht er auch. Wenn der Prozess sich aufhängt (selten, aber passiert schon mal), dann soll der Prozess beendet und wieder neu gestartet werden. Also Starten geht, aber wie beende ich den Prozess wieder ?

Code: Alles auswählen

import os
pz = os.popen('pfad')    
pz.close()
funktioniert leider nicht.

Wie kann ich ausserdem os.popen dazu bewegen, mehrere Prozesse zu starten ?

Code: Alles auswählen

pz1 = os.popen('pfad1') 
pz2 = os.popen('pfad2') 
pz3 = os.popen('pfad3') 
funktioniert nur linear. Also pz2 wird erst gestartet, wenn pz1 terminiert ist, usw. Seven

Zusatz:
Ich erweitere die Frage auf 'subprocess'. Damit kann ich mehrere .exe's parallel starten, aber wie wieder beenden ?
snakeseven
User
Beiträge: 408
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Gegoogelt und gefunden:

Code: Alles auswählen

import time,subprocess,win32api

def kill(pid):
    handle = win32api.OpenProcess(1, 0, pid)
    return (0 != win32api.TerminateProcess(handle, 0))

def init_process():
    #startet programm.exe und beendet es wieder nach 5 Sekunden
    pz1 = subprocess.Popen('programm.exe') 
    time.sleep(5)
    kill(pz1.pid)

init_process()
dirty sanchez
User
Beiträge: 42
Registriert: Freitag 27. Juni 2008, 12:21

Wenn ich jetzt aber vom MPlayer MPUI.exe starte und wieder mit kill(process.pid) beende, läuft der MPlayer Prozess weiter da nur der MPui Prozess beendet wird. Gibts eine möglichkeit die Prozesse, die mein gestarteter Prozess mitaufgerufen hat, mitzukillen wenn ich meinen Prozess beende?
Antworten