This is an excerpt from the latest version perlfaq8.pod, which
comes with the standard Perl distribution. These postings aim to
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at
http://faq.perl.org .
--------------------------------------------------------------------
8.39: How do I set CPU limits?
(contributed by Xho)
Use the "BSD::Resource" module from CPAN. As an example:
use BSD::Resource;
setrlimit(RLIMIT_CPU,10,20) or die $!;
This sets the soft and hard limits to 10 and 20 seconds, respectively.
After 10 seconds of time spent running on the CPU (not "wall" time), the
process will be sent a signal (XCPU on some systems) which, if not
trapped, will cause the process to terminate. If that signal is trapped,
then after 10 more seconds (20 seconds in total) the process will be
killed with a non-trappable signal.
See the "BSD::Resource" and your systems documentation for the gory
details.