установить лимит времени на выполнение java-кода через shell_exec

Я разработал онлайн-редактор кода Java по адресу http://joomla5.guru99.com/try-java-editor.html Я вызываю javac, используя функцию shell_exec php и выполняю код java.

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

Теперь в целях безопасности я хочу установить ограничение по времени для выполнения этого java-кода. Например, выполнение java-кода должно быть остановлено через некоторое время, и все его процессы должны быть убиты.

Я пробовал команды ulimit и ps, но не смог этого добиться.

Пожалуйста, помогите мне в правильном направлении и, пожалуйста, помогите мне сделать это возможным.

С Уважением.


person Ram Guru99    schedule 28.02.2014    source источник
comment
возможный дубликат управления тайм-аутом shell_exec () и exec ()   -  person Wesley Bland    schedule 28.02.2014
comment
@WesleyBland совершенно разные, поскольку я вызываю java-процессы с помощью shell_exec, но не использую proc_open, который он использует.   -  person Ram Guru99    schedule 01.03.2014


Ответы (1)


Сделать это можно 3 способами:

1) Вызовите pcntl_fork в PHP и проверьте тайм-аут в родительском процессе. Убейте его, если он превышает, используя команду linux kill.

2) Включите тайм-аут в сценарий bash, который вы будете вызывать с помощью shell_exec, см. Этот пример: http://www.bashcookbook.com/bashinfo/source/bash-4.0/examples/scripts/timeout3

3) Используйте proc_open / proc_terminate функции

Лично я бы выбрал номер 3, он самый чистый. Если вам нужно быстро и грязно, используйте номер 2.

person lubik    schedule 09.04.2014