gpt4 book ai didi

python - 如何检测 os.system 的内存限制

转载 作者:行者123 更新时间:2023-11-28 19:27:04 25 4
gpt4 key购买 nike

我目前正在使用 os.fork 和 os.system 命令设置和运行一些命令。我通过 resource.setrlimit 设置了时间和内存限制,这似乎工作正常。然而,由于内存上限,每个程序都有自己的崩溃方式——python 程序会抛出 MemoryError,c++ 程序可能有错误的分配,等等。

我想知道的是我如何检测 os.system 命令何时因内存限制限制(假设超时或其他某种完成方式)而完成执行。我尝试了以下但没有成功:

try:
status = os.system(command)
except MemoryError:
# Never actually makes it here...

编辑:我现在真的只关心 unix 系统。

最佳答案

参见 http://blog.tsul.net/2008/04/ossystem-and-its-return-value.html

在 Windows 上,system() 和 wait() 似乎总是返回 0。

在 unix 或 mac 上,system() 将返回“一个包含其 pid 和退出状态指示的元组:一个 16 位数字,其低字节是杀死进程的信号编号,其高字节是退出状态(如果信号编号为零);如果生成核心文件,则设置低字节的高位。可用性:Macintosh、Unix。"

您应该能够查看低字节以确定信号是什么,并使用它来确定它被杀死/退出的原因。

关于python - 如何检测 os.system 的内存限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com