2012-03-05 2 views

답변

2

JBoss와 같이 서버가 stdout으로 리다이렉트했을 때 stdout으로가는 모든 것이 이미 명명 된 로그 파일로 가고 있다고 생각하기 때문에 stdout은/dev/null로 리디렉션되었습니다.

+0

출력을 명령 자체의 파일로 리디렉션하면 어떤 차이가 있습니까? kill -3 PID> dump –

+0

kill -3의 출력을 리디렉션하지 못했고 시작을 변경해야했습니다 script (더 이상 리다이렉트하지 않음) –

+1

조금 늦었지만 이것을하기 위해 'jstack'을 사용할 수 있음을 발견했습니다. –

1

일부 서버의 JVM 스레드 덤프의 콘솔 출력은 로그 파일로 리디렉션에 자바 6_26에 있습니다. Tomcat Server의 경우 일반적으로 Catalina.out입니다.

0

독립 실행 형 Java 응용 프로그램 (Oracle JDK 1.6.20 이상, Linux)에서 설명하는 동작을 보았지만 일관되게이 동작을 재현하는 방법을 알 수 없습니다. 스레드 중 하나에서 이후되었을 수도 있지만 더 이상 확실하지 않습니다.

나는 또한 비어있는 덤프뿐만 아니라 명령이 실제로 멈춰서 잠시 기다렸다가 Ctrl + C 키를 누를 때까지 쉘을 돌려주지 않는다고 생각한다. 어쨌든 jstack의 동작은 정확히 kill -3과 동일합니다. 문제가 발생했을 때 앱은 정상적인 형태 인 kill에 반응하지 않았고 kill -9 만 처리했습니다. 리디렉션이 없었으며 정상적인 상황에서는 앱이 kill -3에 반응했습니다.

관련 문제