我有一个在启动时自动运行的程序,偶尔会导致核心转储。
我想记录输出,但我似乎无法以编程方式设置 ulimit -c
(默认为 0,每次都会重置)。
我试过使用 bash 脚本,以及 python 的 sh
、os.system
和 subprocess
,但我不能让它工作。
最佳答案
一个进程只能为它自己和它的子进程设置资源限制。它不能为其祖先设置资源限制。通过调用 os.system('ulimit -c')
,您要求子“ulimit”进程设置祖先“Python”进程的资源限制。
您的 Python 程序可以使用 resource
设置其资源限制模块:
import resource
resource.setrlimit(
resource.RLIMIT_CORE,
(resource.RLIM_INFINITY, resource.RLIM_INFINITY))
关于python - 从 shell 设置 `ulimit -c`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25475906/