Terminate subprocess in Windows, access denied
-
import time
import subprocess
from os.path import expanduser
chrome_path = expanduser('~\Local Settings\Application Data\Google\Chrome\Applicatio开发者_如何学Pythonn\chrome.exe')
proc = subprocess.Popen(chrome_path)
time.sleep(4)
proc.terminate()
Output: WindowsError: [Error 5] Access is denied
How can I kill the Chrome process?
Python 2.6 on Windows XP.
I don't know about Windows, but have noticed on Linux that Google Chrome "protects" itself from operating system control signals in a way that few programs do:
$ 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
I suspect this may be the root cause of your troubles. Incidentally, I'm posting this note from process 2345.
what happens if you use TASKKILL /F /PID [number of process ID] ? Give it a try. Launch it through import OS
I think the best bet is to find and close the window at the os level: http://python.net/crew/skippy/win32/Downloads.html.
精彩评论