你如何阻止perl制作转储文件?

时间:2012-11-07 17:48:41

标签: perl bash perl-module

目前我正在运行几个处于实验测试阶段的脚本。不幸的是,它们偶尔会崩溃并产生大量的“core-perl-11-544-546-27320-1xxxxxxx”perl核心转储文件。

我想确保如果将来这些文件再次崩溃,它们不会生成perl转储文件,或转储的文件大小有限。

现在有一些脚本检查Perl核心转储文件,如果它们大于设定的大小,则删除它们,但这对于膝盖断裂是一个明显的创可贴。

我该如何限制perl转储文件的大小,或阻止它被制作?

2 个答案:

答案 0 :(得分:1)

为了防止在perl脚本中创建核心转储文件,您可以使用(从How do I set a ulimit from inside a Perl script that applies to its children?窃取的程序):

require 'syscall.ph';
require 'sys/resource.ph';
$rstruct = pack "L!L!",0,&RLIM_INFINITY;
syscall(&SYS_setrlimit,&RLIMIT_CORE,$rstruct);

要将转储限制为特定大小,请将上面的0更改为所需的大小。

答案 1 :(得分:0)

不会

使用BSD :: Resource;   setrlimit(RLIMIT_CORE,0,0);

更简单?