로그 파일 없이 Upstart 작업의 콘솔 출력 보기

로그 파일 없이 Upstart 작업의 콘솔 출력 보기

나는 사용자 정의 Java 서버를 작성했습니다. /etc/init/myservice.configUpstart() 를 사용하여 시작 시 실행 합니다 java -jar myservice.jar.

Java 프로세스는 System.out.println다양한 로그 메시지를 작성하는 데 사용됩니다.

원격 SSH 세션에서 연결하여 출력을 볼 수 있기를 원합니다.

업데이트: 로그 파일을 생성, 순환, 관리하는 번거로움 없이 이 작업을 수행하고 싶습니다.

다음을 포함한 많은 게시물을 보았습니다. 다른 bash 세션에서 실행 중인 프로세스의 출력을 어떻게 볼 수 있나요?

나는 이것을 시도했지만 cat모든 tail -f /proc/<procid>/fd/0 /proc/<procid>/fd/1 /proc/<procid>/fd/2출력이 비어 있습니다.

이 모든 작업은 루트로 수행됩니다.

시도해 볼 것이 더 있다는 것을 알고 있지만 fd가 비어 있기 때문에 회의적입니다(또는 적어도 제 눈에는 그렇게 보입니다).

저는 Ubunutu Server 14.04 LTS, Oracle Java 8을 실행하고 있습니다.

업데이트: 화면을 사용해 보고 싶었지만 이 화면에는 적합하지 않다는 것을 알았습니다... 권한이 없는 사용자의 시작 작업을 사용하여 스크린 세션을 시작하려면 어떻게 해야 합니까?

답변1

내가 생각할 수 있는 가장 간단한 방법은 출력을 다음과 같은 파일로 리디렉션하는 것입니다.

java -jar myservice.jar >> /var/tmp/myservice

출력량이 많으면 로그가 커질 수 있으므로 cron몇 시간마다 작업으로 정리하거나 로그를 순환해야 할 수도 있습니다.

System.out.println대신 출력을 인쇄하는지 확인하십시오 System.err.println. 그렇다면 err오류 스트림을 리디렉션해야 합니다.

java -jar myservice.jar 2>> /var/tmp/myservice

답변2

java -jar myservice.jar > mylogfile.txt 2>&1

이는 2>&1프로그램의 오류도 기록한다는 의미입니다.mylogfile.txt

관련 정보