目前我正在運行幾個處於實驗測試階段的腳本。不幸的是,它們偶爾會崩潰並生成大型「core-perl-11-544-546-27320-1xxxxxxx」perl核心轉儲文件。如何防止perl製作轉儲文件?
我想確保如果將來這些文件再次崩潰,它們不會生成perl轉儲文件,或者轉儲的文件大小是有限的。
現在有一些腳本檢查Perl核心轉儲文件,如果它們大於設定的大小,則刪除它們,但是這對於膝蓋破損是明顯的創可貼。
我該如何去限制perl轉儲文件的大小,或者防止發生?
目前我正在運行幾個處於實驗測試階段的腳本。不幸的是,它們偶爾會崩潰並生成大型「core-perl-11-544-546-27320-1xxxxxxx」perl核心轉儲文件。如何防止perl製作轉儲文件?
我想確保如果將來這些文件再次崩潰,它們不會生成perl轉儲文件,或者轉儲的文件大小是有限的。
現在有一些腳本檢查Perl核心轉儲文件,如果它們大於設定的大小,則刪除它們,但是這對於膝蓋破損是明顯的創可貼。
我該如何去限制perl轉儲文件的大小,或者防止發生?
爲了防止從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
以上所需的大小。
不會
使用BSD :: Resource; setrlimit(RLIMIT_CORE,0,0);
會更簡單嗎?
你會想在bash中看看[ulimit](http://ss64.com/bash/ulimit.html)。 –
這應該是一個答案,@ j.w.r – ysth
破的膝蓋是perl是傾倒核心的。它不應該,你知道。你可能使用線程和非線程安全模塊? – ysth