终止Windows中的子进程,访问被拒绝

8 投票
3 回答
3494 浏览
提问于 2025-04-15 22:54

-

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()

输出: WindowsError: [Error 5] 访问被拒绝

我该如何结束Chrome进程?

在Windows XP上使用Python 2.6。

3 个回答

0

我觉得最好的办法是去操作系统层面找到并关闭那个窗口: http://python.net/crew/skippy/win32/Downloads.html

2

我对Windows不太了解,但我注意到在Linux上,谷歌浏览器以一种很少有程序会做的方式“保护”自己,不受操作系统控制信号的影响:

$ 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

我怀疑这可能是你遇到问题的根本原因。顺便说一下,我是从进程2345发的这条信息。

0

如果你使用命令 TASKKILL /F /PID [进程ID的数字] 会发生什么呢?你可以试试看。通过导入 OS 模块来运行这个命令。

撰写回答