【问题标题】:python , launch an external program with ulimitpython , 用 ulimit 启动一个外部程序
【发布时间】:2016-10-19 09:44:27
【问题描述】:

我需要从我的 python 脚本启动一个外部程序。 这个程序崩溃了,所以我需要从中获取核心转储。

我能做什么?

【问题讨论】:

    标签: python ulimit


    【解决方案1】:

    查看 python resource 模块。它会让你设置核心文件的大小等,就像 ulimit 命令一样。具体来说,你想做类似的事情

    resource.setrlimit(resource.RLIMIT_CORE, <size>)
    

    在启动您的目标程序之前。

    我对用法的猜测(我自己没有这样做过)是:

    import resource
    import subprocess
    
    resource.setrlimit(resource.RLIMIT_CORE, 
                       (resource.RLIM_INFINITY,
                        resource.RLIM_INFINITY))
    command = 'command line to be launched'
    subprocess.call(command)
    # os.system(command) would work, but os.system has been deprecated
    # in favor of the subprocess module
    

    【讨论】:

    • resource.setrlimit(resource.RLIMIT_CORE, resource.RLIM_INFINITY) os.system(launch_str) ?
    • 是的,试试这个,如果不能解决问题,请告诉我
    • 实际上,setrlimit() 需要一个元组作为限制参数。请参阅我添加到答案中的示例。
    • 我收到此错误 AttributeError: 'module' object has no attribute 'RLIMIT_INFINITY'
    • 哦,对不起。更仔细地查看参考,它是 RLIM_INFINITY(不是 RLIMIT_...)。我已经更正了这个例子。
    猜你喜欢
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多