【问题标题】:Terminate subprocess in Windows, access denied在 Windows 中终止子进程,访问被拒绝
【发布时间】:2011-02-21 12:37:46
【问题描述】:

-

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] Access is denied

如何终止 Chrome 进程?

Windows XP 上的 Python 2.6。

【问题讨论】:

  • 我无法复制您的问题。我在 Windows 7 上使用 Python 2.6.6 和 6.0.472.63,但进程被杀死就好了。
  • 猜猜这只是一个 XP 问题。我在问题中添加了版本信息。

标签: python windows subprocess terminate


【解决方案1】:

我不了解 Windows,但注意到在 Linux 上,Google Chrome 以一种很少有程序可以做到的方式“保护”自己免受操作系统控制信号的影响:

$ 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 发布此注释。

【讨论】:

    【解决方案2】:

    如果你使用 TASKKILL /F /PID [number of process ID] 会发生什么?试一试。通过导入操作系统启动它

    【讨论】:

    • 不确定我是否理解...“TASKKILL”未被识别为内部或外部命令、可运行程序或批处理文件。
    • 啊,显然 taskkill 仅随 XP Pro 提供。我正在运行家庭版。但是,“tskill ”确实有效。
    【解决方案3】:

    我认为最好的办法是在操作系统级别找到并关闭窗口:http://python.net/crew/skippy/win32/Downloads.html

    【讨论】:

      猜你喜欢
      • 2015-10-03
      • 1970-01-01
      • 2020-09-07
      • 2011-07-31
      • 2011-04-29
      • 2020-09-26
      • 2019-03-09
      • 2015-11-27
      • 1970-01-01
      相关资源
      最近更新 更多