Segfault的优美处理

| 我正在用Python编写一个在Linux中使用封闭源API的程序。该API有时会起作用,有时会出现段错误-也会使我的程序崩溃。但是,如果程序运行10秒钟,则它将超过可能出现段错误并永远运行的时间(错误仅在开始时发生)。 我想我需要某种类型的脚本: 启动我的python程序, 等待十秒钟 检查python是否仍在运行 如果正在运行,则脚本应以不结束python的方式结束自身 如果python没有运行,则重复执行。 这样的程序可行吗? segfault还会杀死脚本吗?
已邀请:
是的,这样的程序是完全可行的。您只需要在单独的进程中运行这两个程序-SEGFAULT仅终止发生该进程的进程。 如果您使用的是Linux,则可以根据需要使用bash或python。只需在单独的过程中启动失败的脚本即可。 python中的代码可能与此类似:
import subprocess
import time

start = time.clock()
ret = subprocess.call([\'myprog\', \'myarg0\', ...])
end = time.clock()
if end - start > threshold:
    restart()
同样,由于SEGFAULT,此类过程返回的代码可能在完成后具有一些有意义的值。
您可以在子进程中隔离对此错误API的调用吗?这样,您可以检查退出状态并在ѭ1之内处理崩溃

要回复问题请先登录注册