2016-09-26 4 views
0

OS -> 우분투 16.04 64 다음 자바 프로그램이 같이 </home/user> 내부의 디렉토리에 로그 파일을 생성 명령 줄에서 <user>로 실행됩니다없음 로그 파일이 생성되지

시스템 매개 변수로 전달 된 java 유틸리티 로깅 특성 파일에 구성됩니다. 같은 프로그램은 다음 systemd 단위로 실행하면

nohup java -Duser.home=<home/<user>> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> >> /dev/null 2>>/dev/null & 

그러나 프로그램이 괜찮 실행 (이 대신을/dev/null의 파일로 파이프 때 출력을 볼 수 있습니다)하지만, 로그 파일은 생산되지!

[Unit] 
Description=Daemon Desc 

[Service] 
WorkingDirectory=/home/<user>/<app> 
ExecStart=/usr/share/java -Duser.home=/home/<user> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> 

User=<user> 

[Install] 
WantedBy=multi-user.target 

도움이 될 것입니다.

+0

소리가 파일 사용 권한 문제 일 수 있습니다. systemd에서 실행할 때 로깅 등록 정보를 읽거나 등록 정보에서 지정한 로그 파일에 쓸 수있는 권한을 가진 사용자로 실행됩니까? – VGR

+0

@VGR log.properties ->'-rw-r-r-- '과 log dir ->'drwxrwxr-x '의 권한을 가진 사용자 = 으로 장치를 실행하도록 지정했습니다. –

답변

0

systemd 서비스에서 직접 java를 호출하는 대신 java 프로그램을 시작하는 쉘 스크립트를 호출하여 해결되었습니다. 로그 파일이 생성되지 않는 이유는 아직 명확하지 않습니다.

관련 문제