我在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命令但无法实现此目的。
请帮助我正确指导,请帮助我实现这一目标。
问候。
答案 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。