моя идея состоит в том, чтобы запустить сервер Minecraft с классом процесса Symfony2 и хотите дать мне обратную связь в режиме реального времени. Итак, как описано в разделе Process поваренной книги, я пробую следующий код:
$process = new Process('sudo java -jar -Xms512M -Xmx1G ../server/minecraft_server.jar');
$process->setTimeout(null);
$process->run(function ($type, $buffer) {
if ('err' === $type) {
echo 'ERR > '.$buffer;
} else {
echo 'OUT > '.$buffer;
}
});
Из-за некоторых проблем с правами пользователя apache2 я изменил файл sudoers следующим образом: www-data ALL = (myspecialUser) NOPASSWD: /usr/bin/java
, чтобы пользователь www-data мог запускать команду java.
Сервер запускается в фоновом режиме, но теперь моя проблема в том, что я не получаю никаких выходных данных в реальном времени. Только если я выключу (или убью) серверный процесс minecraft, я получу вывод.
Любые предложения, как получить вывод в реальном времени?