2012-03-13 3 views
1

내가 log4j에 문제가, 오전 ​​서비스로 실행 재생을 설정하려면이 Ubuntu Upstart script를 사용하려고하고 있어요. 스크립트는 본질적으로 다음을 수행합니다.Play의 현재 디렉토리를 앱의 홈 디렉토리로 설정하는 방법은 무엇입니까?

start-stop-daemon --start --exec /home/ubuntu/programs/play/current/play 
        --chuid ubuntu:ubuntu -- start /home/ubuntu/myapp/src/ --%id 

재생이 정상적으로 시작되지만 log4j 파일을 만들지 못합니다. start-stop-daemon이 log4j 폴더를 올바르게 설정하지 않았다고 생각합니다. Log4j는 상대 경로 logs/play.log에 로그 파일을 생성하도록 구성되며 /home/ubuntu/myapp/logs/play.log으로 변환됩니다. 폴더 /home/ubuntu/myapp/logs/가 존재하지 않습니다,하지만 플레이를 시작할 때 나는이 오류가 발생합니다 :

의 log4j : ERROR setFile를 (NULL, TRUE) 호출이 실패했습니다. java.io.FileNotFoundException : 로그/play.log (해당 파일 또는 디렉토리) java.io.FileOutputStream의에서 java.io.FileOutputStream.open (기본 방법) 에서 (FileOutputStream.java:212) 에서. 재생에 대해 "현재 디렉토리"플레이 아니라는 것을 의미 java.io.FileOutputStream의. (FileOutputStream.java:136) org.apache.log4j.FileAppender.setFile에서 (FileAppender.java:294)

집에있는 것이 아니라 오히려 다른 것. 이제 절대 log4j 경로를 제공하여 변경할 수 있지만 해킹처럼 보입니다. 그리고 Play 현재 폴더에 의존하는 다른 구성 요소가 비슷한 문제를 일으키는 지 궁금합니다.

그래서, 내가 Play의 현재 디렉토리를 확인 할 수있는 방법 응용 프로그램의 홈 디렉토리와 동일합니다?

답변

2

솔루션은 start-stop-daemon 라인 --chdir $HOME 첨가 하였다. 솔직히 사소한. 이 레드햇을 위해 적용 할 수있는 방법

+0

? 해당 OS에 대한 시작 - 정지 - 데몬은 없습니다. 감사. – Meglio

+0

@ 메글 리오 - 확실하지 않습니다. 이것에 대해 새로운 질문을하십시오. – ripper234

관련 문제