有一个设置来限制cgi进程在Apache上实时吗?

我希望Apache在1分钟后终止我的Perl脚本,如果它不能自然完成的话。 在Apache(或其他服务器软件)中是否有这样的设置?

CGIwrap执行suEXEC所做的大部分工作(在备用权限下运行脚本),但它也允许您设置资源限制:

--with-rlimit-cpu=SECONDS limit cpu time with setrlimit --with-rlimit-vmem=BYTES limit total virtual memory with setrlimit --with-rlimit-as=BYTES limit total available memory with setrlimit --with-rlimit-fsize=BYTES limit writable file size with setrlimit --with-rlimit-data=BYTES limit data segment size with setrlimit --with-rlimit-stack=BYTES limit stack segment size with setrlimit --with-rlimit-core=BYTES limit core file size with setrlimit --with-rlimit-rss=BYTES limit resident set size with setrlimit --with-rlimit-nproc=COUNT limit number of processes with setrlimit --with-rlimit-nofile=COUNT limit number of open files with setrlimit --with-rlimit-memlock=BYTES limit lockable memory with setrlimit 

在我的头顶,我可以看到两个解决scheme(注:我是一个UNIX / Linux的家伙):

  1. 修改你的Perl代码来设置一个闹钟,然后编程一个信号处理器来捕捉闹钟并执行你想要的任何处理。

  2. 如果CPU时间达到1秒,则可以操作进程的CPU限制来终止。 但是,真正的时钟时间长度要达到1秒的CPU时间取决于你的perl脚本。

这可能会帮助你: http : //www.perlmonks.org/?node_id=703780

你总是可以把“警报60” 在你的Perl脚本的顶部。 但是,这将需要修改所有的Perl程序。