目前我正在运行几个处于实验测试阶段的脚本。不幸的是,它们偶尔会崩溃并产生大量的“core-perl-11-544-546-27320-1xxxxxxx”perl核心转储文件。
我想确保如果将来这些文件再次崩溃,它们不会生成perl转储文件,或转储的文件大小有限。
现在有一些脚本检查Perl核心转储文件,如果它们大于设定的大小,则删除它们,但这对于膝盖断裂是一个明显的创可贴。
我该如何限制perl转储文件的大小,或阻止它被制作?
答案 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);
更简单?