gpt4 book ai didi

php - 通过 shell_exec 设置 java 代码执行的时间限制

转载 作者:太空狗 更新时间:2023-10-29 12:32:44 24 4
gpt4 key购买 nike

我在 http://joomla5.guru99.com/try-java-editor.html 开发了一个在线 Java 代码编辑器我正在使用 php 的 shell_exec 函数调用 javac 并执行 java 代码。

$result = shell_exec('javac' .$soucejavafile. '2>&1');
and running classfile by
$result= shell_exec('java' .$classfile. '2>&1');

现在出于安全目的,我想为这个 java 代码执行设置时间限制。例如,Java 代码的执行应该在一段时间后停止,并且它的所有进程都必须被杀死

我试过了ulimit 和 ps 命令,但无法实现。

请在正确的方向上帮助我,并帮助我实现这一目标。

问候。

最佳答案

您可以通过 3 种方式做到这一点:

1) 调用pcntl_fork在 PHP 中并检查父进程中的超时。如果超过使用 linux kill 命令将其杀死。

2) 在您将使用 shell_exec 调用的 bash 脚本中包含超时,请参见以下示例: http://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeout3

3) 使用proc_open/proc_terminate功能

就我个人而言,我会选择 3 号,它是最干净的。如果您需要又快又脏,请使用数字 2。

关于php - 通过 shell_exec 设置 java 代码执行的时间限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22095726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com