python - 如何在Python中识别进程处于卡住状态?

标签 python process

如何在Python中识别进程处于卡住状态

我每天午夜都会在服务器上运行 python 文件,有时它会进入“卡住”状态。这是 5 或 6 天后发生的吗?

Python 脚本在运行过程中不占用太多内存或负载,如果发布 120 个文档,则需要 4 小时。

以下步骤:

  1. 运行Python脚本custom.py
  2. 1 小时后,如果没有相同的脚本正在运行,则再次运行相同的 python 脚本。

如果脚本是前一个脚本仍在系统中,则相同的脚本将不会终止。

但是正在运行的脚本进入 Froze 或 Zombie 状态的进程,则下次脚本将不会运行,因为渗透脚本仍在系统中。

最佳答案

如果您希望脚本因超时而被终止,并且您使用的是 UNIX,则可以使用 SIGALRM:Timeout on a function call

如果您想防止启动同一脚本的多个副本,有多种解决方案。最简单的是ps aux | grep 。如果还不够,你可以使用 filelock 包 https://pypi.python.org/pypi/filelock/ 但根据我的经验,它仍然不稳定。最好的解决方案是使用 sys-v ipc 信号量 http://semanchuk.com/philip/sysv_ipc/ 。您可以设置undo进程终止后删除信号量锁的标志。

关于python - 如何在Python中识别进程处于卡住状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500663/

相关文章:

python - 如何在 tkinter 中设置 mac osx 默认按钮

java - 在 Java 中重定向标准输入和标准输出

process - 敏捷方法论中的软件指标

linux - 接收信号时阻塞的系统调用会发生什么?

c# - SECURITY_ATTRIBUTES 何时更改,为什么更改?

python - 如何在运行时获取应用程序 ID

javascript - Python-SocketIO 服务器需要很长时间才能触发事件

Python MySQL Spark(java.lang.ClassNotFoundException : com. mysql.jdbc.Driver)

javascript - 使用 hmac 和 sha256 的 Python 加密不会给出与 javascript 相同的结果

java - 如何使用包含双引号的参数从 Java 启动进程