带有psutil的Python程序在运行PermissionError 8小时后失败:[WinError 5]访问被拒绝-为什么?

金智宇

我有一个在Windows中运行的使用psutil的Python 3.x程序。该程序的工作很简单-定期检查是否正在运行其他程序。如果找到程序,则不执行任何操作。如果找不到该程序,它将启动该程序。然后程序进入睡眠状态,并再次循环执行相同的操作。这是代码的最低版本:

import psutil, os, time

found = 0

theprogram = 'hiimaprogram.exe'

while True:

    for process in psutil.process_iter():
        if process.name() == theprogram:                   # this is line 14
            found = 1
            print ('process found, doing nothing')
            

    if found == 0:
        print ('process not found, starting the process')
        filepath = theprogram
        os.startfile(filepath)
        
    found = 0

    time.sleep(10)
    print ('sleeping')
    continue

该代码可以很好地完成工作。但是,它有时也会随机失败,永远不会立即消失,通常会在8小时大关出现,尽管有时它会存活更长的时间。这是回溯:

Traceback (most recent call last):
  File "site-packages\psutil\_pswindows.py", line 707, in wrapper
  File "site-packages\psutil\_pswindows.py", line 791, in exe
PermissionError: [WinError 5] Access is denied

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "site-packages\psutil\_pswindows.py", line 782, in name
  File "site-packages\psutil\_pswindows.py", line 709, in wrapper
psutil.AccessDenied: psutil.AccessDenied (pid=31216)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "site-packages\psutil\_pswindows.py", line 707, in wrapper
  File "site-packages\psutil\_pswindows.py", line 784, in name
ProcessLookupError: [Errno 3] No such process

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "programchecker.py", line 14, in <module>
  File "site-packages\psutil\__init__.py", line 731, in name
  File "site-packages\psutil\_pswindows.py", line 709, in wrapper
psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=31216)

代码中标记了进程死亡的第14行。对于我来说,编写一个try / except来忽略该错误足够容易,但是我真的很想知道为什么会这样。尝试/除外代码:

while True:

    for process in psutil.process_iter():
        try:
            if process.name() == theprogram:                  # this is line 14
                found = 1
                print ('process found')
        except:
            print ('error')
            time.sleep(100)
            continue

阅读psutil和其他有相同错误(但由于不同原因)的人,我发现适合我的情况是我需要处于管理员模式,但在管理员模式下运行程序似乎没有帮助完全不同,并且仍然显示相同的错误。我想到的另一件事是,由于睡眠/休眠,某些自动Windows进程可能会在八个小时的时间受到干扰,但是我已确保计算机处于“始终开启”的电源方案,其中不应有任何干扰(至少理论上)。任何帮助表示赞赏,谢谢!

金智宇

我找到了解决方案,这完全是荒谬的,但事实确实如此。

我的程序正在检查其是否存在的实际程序具有内置的“安全功能”,即使该程序处于活动状态并正在使用,它也会在8小时标记后强制自己超时这直接来自该程序的开发人员。疯了,我知道。添加上述try / except可以解决此问题,睡眠超时100足以使主程序停止关心并重置时钟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python Selenium PermissionError:[WinError 5]访问被拒绝

来自分类Dev

在aws上运行delay_job时,为什么导致访问被拒绝?

来自分类Dev

程序未运行时,为什么我的访问被拒绝?

来自分类Dev

为什么在访问FUSE目录时root拒绝获得权限?

来自分类Dev

在XVI32中,为什么选择“以管理员身份运行”后仍然拒绝“文件访问”?

来自分类Dev

孩子被发射了。关闭这些管道的父级副本PermissionError:[WinError 5]访问被拒绝

来自分类Dev

要了解为什么在运行特定命令时为什么会出现“权限被拒绝”错误,是否有任何一般性指导可遵循?

来自分类Dev

要了解为什么在运行特定命令时为什么会出现“权限被拒绝”错误,是否有任何一般性指导可遵循?

来自分类Dev

为什么在运行Linux find命令时出现“权限被拒绝”错误消息

来自分类Dev

为什么将具有管理员权限的文件夹移动到程序文件文件夹时拒绝访问?

来自分类Dev

为什么我的现有Nginx在重新启动系统后显示13:尽管chmod 777权限被拒绝,但运行失败?

来自分类Dev

为什么我在尝试访问Virtualbox中的共享文件夹时遇到“权限被拒绝”的问题?

来自分类Dev

在JasperReports Server中创建临时报告时,为什么会出现错误“访问被拒绝”?

来自分类Dev

为什么有时Python子进程在运行进程后无法获取正确的退出代码?

来自分类Dev

什么是退出值5,为什么在运行C程序时仍然出现此错误?

来自分类Dev

为什么提示提示我“访问被拒绝”?

来自分类Dev

为什么访问路径被拒绝?

来自分类Dev

为什么在键入5时我的脚本不运行if语句?

来自分类Dev

取消读取访问权限后,为什么不能从文件中删除带有icacls的组?

来自分类Dev

为什么我的Elastic Beanstalk应用程序尽管具有角色,但仍然拒绝PutItem访问我的DynamoDB?

来自分类Dev

Python smtplib:为什么拒绝连接?

来自分类Dev

Python smtplib:为什么连接被拒绝?

来自分类Dev

git.exc.GitCommandNotFound:[WinError 5]访问被拒绝

来自分类Dev

如何解决[WinError 5] anaconda提示中的访问被拒绝

来自分类Dev

当访问C ++中的past-the-end元素时,为什么没有运行时错误?

来自分类Dev

Java 8 Acces在运行带有参数的进程时被拒绝

来自分类Dev

为什么Parsimonious拒绝带有IncompleteParseError的输入?

来自分类Dev

为什么在运行server.js和client.js并访问localhost时收到错误请求?

来自分类Dev

从Android的本机程序连接到LocalServerSocket时为什么拒绝连接

Related 相关文章

  1. 1

    python Selenium PermissionError:[WinError 5]访问被拒绝

  2. 2

    在aws上运行delay_job时,为什么导致访问被拒绝?

  3. 3

    程序未运行时,为什么我的访问被拒绝?

  4. 4

    为什么在访问FUSE目录时root拒绝获得权限?

  5. 5

    在XVI32中,为什么选择“以管理员身份运行”后仍然拒绝“文件访问”?

  6. 6

    孩子被发射了。关闭这些管道的父级副本PermissionError:[WinError 5]访问被拒绝

  7. 7

    要了解为什么在运行特定命令时为什么会出现“权限被拒绝”错误,是否有任何一般性指导可遵循?

  8. 8

    要了解为什么在运行特定命令时为什么会出现“权限被拒绝”错误,是否有任何一般性指导可遵循?

  9. 9

    为什么在运行Linux find命令时出现“权限被拒绝”错误消息

  10. 10

    为什么将具有管理员权限的文件夹移动到程序文件文件夹时拒绝访问?

  11. 11

    为什么我的现有Nginx在重新启动系统后显示13:尽管chmod 777权限被拒绝,但运行失败?

  12. 12

    为什么我在尝试访问Virtualbox中的共享文件夹时遇到“权限被拒绝”的问题?

  13. 13

    在JasperReports Server中创建临时报告时,为什么会出现错误“访问被拒绝”?

  14. 14

    为什么有时Python子进程在运行进程后无法获取正确的退出代码?

  15. 15

    什么是退出值5,为什么在运行C程序时仍然出现此错误?

  16. 16

    为什么提示提示我“访问被拒绝”?

  17. 17

    为什么访问路径被拒绝?

  18. 18

    为什么在键入5时我的脚本不运行if语句?

  19. 19

    取消读取访问权限后,为什么不能从文件中删除带有icacls的组?

  20. 20

    为什么我的Elastic Beanstalk应用程序尽管具有角色,但仍然拒绝PutItem访问我的DynamoDB?

  21. 21

    Python smtplib:为什么拒绝连接?

  22. 22

    Python smtplib:为什么连接被拒绝?

  23. 23

    git.exc.GitCommandNotFound:[WinError 5]访问被拒绝

  24. 24

    如何解决[WinError 5] anaconda提示中的访问被拒绝

  25. 25

    当访问C ++中的past-the-end元素时,为什么没有运行时错误?

  26. 26

    Java 8 Acces在运行带有参数的进程时被拒绝

  27. 27

    为什么Parsimonious拒绝带有IncompleteParseError的输入?

  28. 28

    为什么在运行server.js和client.js并访问localhost时收到错误请求?

  29. 29

    从Android的本机程序连接到LocalServerSocket时为什么拒绝连接

热门标签

归档