2012-08-08 4 views
4

Tomcat을 처음 사용하고 jprofiler로 tomcat을 구성했습니다. 그러나 이제 Tomcat 서버를 중지 할 수 없어 다음 오류 메시지가 나타납니다.Tomcat을 종료 할 수 없습니다.

[[email protected] bin]# service tomcat stop 
Stopping . 
Using CATALINA_BASE: /data/applications/apache-tomcat-6.0.26 
Using CATALINA_HOME: /data/applications/apache-tomcat-6.0.26 
Using CATALINA_TMPDIR: /data/applications/apache-tomcat-6.0.26/temp 
Using JRE_HOME:  /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0 
Using CLASSPATH:  /data/applications/apache-tomcat-6.0.26/bin/bootstrap.jar 
JProfiler> Protocol version 35 
JProfiler> Using JVMTI 
JProfiler> JVMTI version 1.1 detected. 
JProfiler> 32-bit library 
JProfiler> Listening on port: 8849. 
JProfiler> Instrumenting native methods. 
JProfiler> Can retransform classes. 
JProfiler> Can retransform any class. 
JProfiler> Native library initialized 
JProfiler> VM initialized 
JProfiler> Waiting for a connection from the JProfiler GUI ... 
JProfiler> ERROR: Could not bind socket. 
\n\nTomcat has shutdown 

구성에 문제가 있는지 잘 모르겠다. 상자에서 방화벽을 사용할 수 없습니다. 사용하는 것보다

ps -ef | grep tomcat 

:

[[email protected] bin]# service iptables status 
Firewall is stopped. 
바람둥이 PID 실행 찾기 위해
+0

그러나 Tomcat이 중지되었음을 의미합니다. – Cratylus

+0

또한 오류 메시지를 표시합니다. JProfiler> JProfiler GUI에서의 연결 대기 중 ... JProfiler> ERROR : 소켓을 바인딩 할 수 없습니다. 그리고 예 Tomcat은 서비스 또는 init.d 스크립트를 사용하여 여러 번 중지 한 후에 계속 실행 중입니다. – PratapSingh

+0

'service' 명령에 의해 호출 된 스크립트를 살펴보십시오. 아마도 원하지 않는 구성이 입력되었을 수도 있습니다. 당신은 스크립트가'/ etc/init.d'와 가까운 곳에있을 가능성이 높습니다. – HonkyTonk

답변

6

kill -9 PID 

또 다른 한가지는, 백업 바람둥이을 가져 유지하는 감시 실행이있을 수 있습니다를 - 등의 당신은 워치 독을 끄기 (또는 죽이기)를 원할 것입니다.

+0

나는 그것을 검사하고 실행 중이며 서버에서 watch dog을 사용할 수 없습니다. – PratapSingh

+0

당신은 그것을 죽이려고 했습니까? – alfasin

0

J로드를위한 VM 파라미터를 삽입했습니다 tomcat 스크립트의 프로필러 에이전트. JProfiler 에이전트는 특정 포트 (기본적으로 8849)에서 들어오는 연결을 수신 대기 할 수 있어야합니다. 포트는 실행중인 Tomcat에서 이미 사용 중입니다. Tomcat 스크립트를 다시 시작하면 프로파일 링 에이전트를 초기화 할 수 없기 때문에 JVM 초기화에 실패합니다.

tomcat 시작 스크립트에서 -agentlib:[path to jprofilerti.dll] JVM 매개 변수를 제거하거나 "stop"명령에 적용되지 않도록 조건부로 만들어야합니다.

0

Tomcat 설명서에 따라 Tomcat의 프로세스 ID를 저장해야하는 PID 파일을 정의 할 수 있습니다.

  1. Tomcat bin 디렉토리에 "setenv.sh"라는 쉘 스크립트를 만듭니다.
  2. 이 파일은 catalina.sh에서 참조되므로 정확하게 동일한 이름이어야합니다.
  3. "setenv.sh"에 tomcat pid 정보 만 있으면됩니다. 아래처럼 뭔가 .. 위의 단계를

    #!/bin/bash CATALINA_PID="$CATALINA_BASE/bin/catalina.pid"

  4. 은, 바람둥이는 bin 디렉토리에 "catalina.pid"로라는 이름의 파일을 찾습니다. 그럼 그냥 만드세요.

끝났습니다. tomcat을 -force 옵션으로 중지하는 것을 잊지 마십시오.

./shutdown.sh -force 

힘의 옵션은 주어진 시간 내에 막을 수 아니라면, PID에 의해 바람둥이을 죽일 바람둥이을 알려줍니다.

관련 문제