2013-06-03 12 views
4

jboss 서버에서 실행중인 웹 응용 프로그램의 스레드 덤프를 가져 오려고합니다.Kill - 3 또는 Jstack : 다른 점은 무엇입니까?

  • 유닉스 명령을 사용하여 :

    내가이 내 문제에 대한 해결책을 찾을 죽일 -3
  • 의 JDK에 존재하는 jstack을 도구를 사용하여.

누구나 저에게이 두 가지 방법의 차이점을 설명 할 수 있습니까?

미리 감사드립니다.

답변

10

jstack 명령은 원격 시스템에서 실행중인 프로그램의 스레드 덤프를 가져올 수 있으며 Windows에서도 작동합니다.

kill -3은 로컬 프로그램에서만 작동하며 Windows에서는 kill이 없습니다.

+3

+1 Jstack에서는 kill -3 (또는 QUIT) 명령을 콘솔로 보내는 동안 스택 출력을 파일로 보낼 수도 있습니다. 그러나 OS가 kill을 지원하면 출력도 동일해야합니다. – Gray

+0

항상 그렇지는 않습니다. 'jstack -F 1138'은'Thread 1138 : (state = IN_JAVA)'와'kill -3 1138'이'Full thread dump ... "를 인쇄했습니다. ActorSystem-scheduler-1"# 14 prio = 5 os_prio = 0 tid = 0x00007fddb4f58800 nid = 0x472 실행 가능 [0x00007fdda4124000] java.lang.Thread.State : RUNNABLE' – mirelon