2010-05-19 5 views
8

-subprocess in Windows beenden, der Zugriff verweigert

import time 
import subprocess 
from os.path import expanduser 

chrome_path = expanduser('~\Local Settings\Application Data\Google\Chrome\Application\chrome.exe') 

proc = subprocess.Popen(chrome_path) 
time.sleep(4) 
proc.terminate() 

Ausgang: WindowsError: [Error 5] Access is denied

Wie kann ich die Chrome Prozess töten?

Python 2.6 unter Windows XP.

+1

Ich kann Ihr Problem nicht replizieren. Ich benutze Python 2.6.6 und 6.0.472.63 unter Windows 7, aber der Prozess wird gut erledigt. – jsalonen

+0

Schätze, es ist nur ein XP-Problem. Ich habe der Frage Versionsinformationen hinzugefügt. –

Antwort

1

Was passiert, wenn Sie TASKKILL/F/PID [Nummer der Prozess-ID] verwenden? Versuche es. Starten Sie es durch den Import OS

+0

Nicht sicher, ich verstehe ... 'TASKKILL' wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt. –

+0

nicht erkannt? Es funktioniert auf meinem XP, Vista, und Windows 7 .. – relima

+0

Ah, anscheinend TaskKill kommt nur mit XP Pro. Ich starte Home Edition. "tskill " funktioniert jedoch. –

2

Ich weiß nicht, über Windows, aber habe bemerkt, auf Linux, dass Google Chrome „schützt“, sich von Betriebssystem-Steuersignale in einer Weise, dass einige Programme tun:

$ ps -lp 2345 
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY   TIME CMD 
4 S 1000 2345  1 0 80 0 - 17699 skb_re ?  00:00:00 chrome 
$ kill -TERM 2345 
$ kill -HUP 2345 
$ kill -SEGV 2345 
$ ps -lp 2345 
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY   TIME CMD 
4 S 1000 2345  1 0 80 0 - 17699 skb_re ?  00:00:00 chrome 

Ich vermute, das das sein kann Ursache Ihrer Probleme. Übrigens poste ich diese Notiz von Prozess 2345.