如何在服务器级别自动杀死具有无限循环的PHP进程

我在我的服务器上有一个沙箱,我允许用户运行他们自己的PHP脚本。 如果一个PHP脚本有一个无限循环,只有当Apache将进程退出(30秒)时才会停止,这显然不太理想。 我知道一些networking主机会自动杀死耗费太多CPU的PHP脚本太久。 我如何在Linux中的服务器级别上实现这样的function,但是又不会杀死花费很长时间的PHP进程(例如使用睡眠语句或等待networking延迟)?

作为一个奖励的问题,我如何处理内存使用情况呢? 我知道PHP已经构build了内存限制,但是包含在这个沙盒中的是一个PHP扩展,在控制权返回给PHP之前,这个扩展并没有实现这些限制,在这个过程中,如果这个过程超过了它所杀的限制,晚了。 在此期间,它可能已经交换了整个交换磁盘,导致服务器被抓取。

你可以用RLimitCPU和RLimitMem把它在Apache中locking。

或者你可以从操作系统本身的时间间隔来重新整个过程。