Verwendung von kill in einem subprocess
Verfasst: Dienstag 11. November 2014, 18:26
Hallo Python-Community,
in meinem Python Script rufe ich mittels subprocess durch den Bildbetrachter feh ein fullscreen Bild auf. Ändert sich der String TempFeld, wird ein neues, anderes Bild aufgerufen. Dies funktioniert auch. Jedoch habe ich das Problem, dass das alte Bild, samt Bildbetrachter im Hintergrund weiterhin geöffnet bleibt.
Mittels nachfolgendem Code habe ich versucht durch abfragen der entsprechenden ProcessID und einem subprocess "kill ProcessID" das Bild im Hintergrund zu schließen, was jedoch nicht funktioniert.
Seltsam ist hierbei, dass der (hier auskommentierte) print Befehl funktioniert, der danach folgende subprocess "kill XXXX" aber nicht.
Ich habe es auch schon mit versucht, was auch nicht funktioniert hat.
Es wäre echt super, wenn mir hier jemand weiter helfen könnte.
Gruß helu1020
in meinem Python Script rufe ich mittels subprocess durch den Bildbetrachter feh ein fullscreen Bild auf. Ändert sich der String TempFeld, wird ein neues, anderes Bild aufgerufen. Dies funktioniert auch. Jedoch habe ich das Problem, dass das alte Bild, samt Bildbetrachter im Hintergrund weiterhin geöffnet bleibt.
Mittels nachfolgendem Code habe ich versucht durch abfragen der entsprechenden ProcessID und einem subprocess "kill ProcessID" das Bild im Hintergrund zu schließen, was jedoch nicht funktioniert.
Code: Alles auswählen
TempFeld = str(chr(Xtempfeld))+str(Ytempfeld)
cmd_open = "feh -x /home/pi/Bilder/" + TempFeld + ".jpg"
if OldTempFeld != TempFeld:
if CloseCount !=0:
OldPID = PID
ImageProc = subprocess.Popen(cmd_open, shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
PID = ImageProc.pid
if CloseCount !=0:
cmd_close = 'kill ' + str(OldPID)
#print (cmd_close)
ImageCloseProc = subprocess.Popen(cmd_close, shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
OldTempFeld = TempFeld
CloseCount = CloseCount + 1Ich habe es auch schon mit
Code: Alles auswählen
ImageProc.kill()Es wäre echt super, wenn mir hier jemand weiter helfen könnte.
Gruß helu1020