私の考えは、 Symfony2 プロセス クラスを使用してマインクラフト サーバーを起動し、リアルタイムでフィードバックを提供したいと考えています。そこで、プロセス クックブック パートで説明したように、次のコードを試します。
$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サーバープロセスをシャットダウン(または強制終了)した場合にのみ、出力が得られます。
リアルタイム出力を取得する方法について何か提案はありますか?