python - psutil.AccessDenied : psutil. AccessDenie

我正在尝试使用 psutil 终止进程 (zoom.exe)。但是,我收到错误 psutil.AccessDenied。我拥有执行此操作的所有权限,并且已经在另一台电脑上进行了测试。

代码

def kill_process(PROCNAME):
  for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
      proc.kill()
      print(f'{PROCNAME} was succesfully killed')
  time.sleep(3)

回溯

Traceback (most recent call last):
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_c
    ret = self._cache[fun]
AttributeError: _cache

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_p
    return fun(self, *args, **kwargs)
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_c
    return fun(self)
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_p
    exe = cext.proc_exe(self.pid)
PermissionError: [WinError 24] The program issued a command but the command length is incorrect.
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:/Users/Acer/Desktop/autozoom/autozoom.py", line 211, in <module>
    kill_process('Zoom.exe')
  File "c:/Users/Acer/Desktop/autozoom/autozoom.py", line 25, in kill_process
    if proc.name() == PROCNAME:
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\__init__.py", line 630, in name
    name = self._proc.name()
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_pswindows.py", line 750, in name
    return os.path.basename(self.exe())
  File "C:\Users\Acer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\psutil\_pswindows.py", line 681, in wrapper
    raise convert_oserror(err, pid=self.pid, name=self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=7868)

最佳答案

解决了这段代码的问题:

def kill_process(PROCNAME):
  for proc in psutil.process_iter():
    try:
      if proc.name().lower() == PROCNAME.lower():
        proc.kill()
        return True
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
      return False

关于python - psutil.AccessDenied : psutil. AccessDenied (pid=7868),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62334530/

相关文章:

docker - 无法加载动态库 'libcuda.so.1'; dlerror : libcuda

c# - 如何评估包含局部变量名称的字符串作为 C# 中的代码

c# - Json 列 SQL

matlab - 使用鼠标右键删除选择表中的行 - Matlab 2020a

python - 查找列表中的值是否大于其下方的项目

google-cloud-functions - GCP Console : console. lo

c# - 尽管已添加到我的项目中但无法使用 Bootstrap

react-native - 在通过深度链接导航到特定路线导航时 React Native。goBa

python - tqdm.notebook 在 jupyter notebook 中显示带有 "H

graphql-java - 读取通过 G​​raphQL Java 中的变量传递的字段参数