如何在服务器级别自动终止无限循环的 PHP 进程

如何在服务器级别自动终止无限循环的 PHP 进程

我的服务器上有一个沙盒,我允许用户在其中运行自己的 PHP 脚本。如果 PHP 脚本有无限循环,则只有当 Apache 超时(30 秒)时它才会停止,这显然不太理想。我知道有些 Web 主机会自动终止长时间占用过多 CPU 的 PHP 脚本。如何在 Linux 的服务器级别实现类似功能,但又不终止耗时较长的 PHP 进程(例如使用 sleep 语句或等待网络延迟)?

另外还有一个问题,我该如何对内存使用情况做同样的事情?我知道 PHP 内置了内存限制,但此沙箱中包含一个 PHP 扩展,它不会实现这些限制,直到控制权返回到 PHP,此时如果进程超过限制,它将被终止,但那时已经太晚了。在此期间,它可能已经交换了整个交换磁盘,使服务器陷入缓慢运行。

答案1

您可以使用以下方式在 Apache 中锁定它限制CPU限制内存

或者你可以雷尼塞整个过程由操作系统本身间歇地进行。

相关内容