내 생각은 Symfony2 Process Class와 minecraft 서버를 시작하고 실시간으로 나에게 피드백을주고 싶습니다.Symfony2 프로세스 doest't 실시간으로 피드백을 제공합니다
이 때문에 내가의 sudoers를 수정 한 아파치 사용자 일부 권한 문제의$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;
}
});
이 함께 파일 :
www-data ALL = (myspecialUser) NOPASSWD: /usr/bin/java
때문에 www가 데이터 사용자가를 실행할 수 Process cookbook part에 설명 된 것처럼 그래서, 나는 다음과 같은 코드를 시도 java 명령.
서버가 백그라운드에서 시작하고 있지만 이제는 실시간 출력이 전혀 나오지 않습니다. 나는 minecraft 서버 프로세스를 종료 (또는 종료) 할 때만 출력을받습니다.
실시간 출력을 얻는 방법에 대한 제안이 있으십니까? 대신 run() 메소드를 호출
어디 출력에 가고? 파일 인 경우 액션에서 해당 파일 내용을 읽고 반환해야합니다. 그런 다음 Ajax에서 주기적으로 호출하여 페이지에서 가져와야합니다. – jaudette
작업 솔루션은 출력을 표준 오류로 리디렉션합니다. 예를 들면 다음과 같습니다 : fprintf (STDERR, "ERR> % s", $ buffer); 하지만 그것이 최선의 해결책인지 잘 모르겠다. – Cyprian
아니, 그게 나를 위해 작동하지 않습니다. 나는 미니 크래프트 서버 (콘솔의 출력이 작동 중임)를 시작하는 심포니 작업을 작성하겠습니다. – F481