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

时间:2014-02-28 12:50:24

标签: php linux shell command-line kill-process

我在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命令但无法实现此目的。

请帮助我正确指导,请帮助我实现这一目标。

问候。

1 个答案:

答案 0 :(得分:1)

您可以通过3种方式实现:

1)在PHP中调用pcntl_fork并检查父进程中的超时。如果超过使用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。