Tomcat이 실행 중입니까?


109

사람들이 Tomcat이 Unix 환경에서 실행 중인지 확인하는 방법을 알고 싶습니다.

프로세스가 다음을 사용하여 실행 중인지 확인합니다.

ps -ef | grep java
ps -ef | grep logging

또는 포트 번호가 활성 상태인지 확인합니다.

netstat -a | grep 8080

Tomcat이 실행 중인지 확인하는 더 좋은 방법이 있습니까? 위의 내용은 Tomcat이 실행 중인지 확인하는 '해키'방법 인 것 같습니다.

답변:


57

grep pspid가 $CATALINA_PID파일 에 쓰여졌 을까요?

나는이 cron바람둥이가 다운되었을 때 이메일을 전송 'D 검사 스크립트를 :

kill -0 `cat $CATALINA_PID` > /dev/null 2>&1
if [ $? -gt 0 ]
then
    echo "Check tomcat" | mailx -s "Tomcat not running" support@dom.com
fi

나는 당신이 wget당신의 바람둥이의 건강을 확인하는 데 사용할 수도 있다고 생각합니다 . 사용자로드 등의 진단 페이지가있는 경우 주기적으로 가져 와서 파싱하여 문제가 있는지 확인할 수 있습니다.


이것은 창문으로 쉽게 할 수 있습니까? Windows에 해당하는 명령을 수정하고 배치 파일에 넣은 다음 스케줄러를 통해 일정을 잡을까요?
liltitus27 2014

tasklist |find /I "Tomcat" || echo "Tomcat not running"bat 파일 의 줄을 따라 뭔가를 할 수 있지만 프로세스 이름에 따라 Tomcat이 아닌 Java를 찾아야 할 수도 있습니다.
GL2014 2014

1
$ CATALINA_PID의 값이 OS에 설치된 Tomcat에서 무엇인지 알아 보려면 다음을 시도하십시오. ps aewwx | grep CATALINA_PID 실행중인 프로세스의 출력에서 ​​다른 환경 변수 중에서 찾을 수 있습니다. Debian 8에서이 값은 다음과 같습니다. CATALINA_PID = / var / run / tomcat8.pid
Professor Falken

2
pid 파일이 존재하지 않을 수 있으며 환경 및 tomcat이 시작된 방법에 따라 다릅니다. 시작시 pid 파일을 만들려면 이 답변 을 참조하십시오 .
Alberto de Paola

92

내 Linux 시스템에서 startup.sh 스크립트로 Tomcat을 시작합니다. 실행 중인지 여부를 확인하려면

ps -ef | grep tomcat  

출력 결과에 내 tomcat 폴더의 전체 경로가 포함되어 있으면 실행 중입니다.


68

대신 이것을 시도하고 루트 권한이 필요하기 때문에 sudo를 사용하십시오.

sudo service tomcat7 status

17
Tomcat이 서비스가 아닌 경우 어떻게합니까? 대신 패키지.
emeraldhieu

1
Emerald214 @ 경우에 당신은 얻을 것이다tomcat7: unrecognized service
야르

@Yar, 그것은 당신의 바람둥이 버전에 따라 달라집니다
TMH

14

netstat -lnp | grep 8080Tomcat의 수신 포트를 알고 있다면 아마도 가장 좋은 방법 일 것입니다. 제대로 작동하는지 확인하려면 연결을 설정하고 HTTP 요청을 보내고 응답을 받아야합니다. 프로그래밍 방식으로 또는 웹 브라우저를 사용하여이 작업을 수행 할 수 있습니다.


포트를 알고 있다면 Tomcat을 설치 한 방법, 서비스 여부 등에 따라 실행 파일이 실행 중인지 확인하는 방법이 다양하다는 점을 고려할 때 이것이 가장 간단한 방법이라고 생각합니다.
Jaffer

9

다음과 같은 방법으로 바람둥이의 상태를 확인할 수 있습니다.

ps -ef | grep tomcat  

Tomcat이 실행중인 경우 Tomcat 경로를 반환합니다.

netstat -a | grep 8080

여기서 8080은 바람둥이 포트입니다.


7

tomcat이 로컬로 설치된 경우 브라우저 창에 다음 URL을 입력하십시오. {localhost : 8080}

그러면 다음 메시지와 함께 Tomcat 홈 페이지가 표시됩니다.

이것이 보이면 Tomcat을 성공적으로 설치 한 것입니다. 축하합니다!

tomcat이 별도의 서버에 설치된 경우, replace localhost를 유효한 호스트 이름으로 입력하거나 tomcat이 설치된 Iess를 입력 할 수 있습니다.

위의 내용은 tomcat이 기본 포트 8080을 사용하는 표준 설치에 적용됩니다.


19
Tomcat이 별도의 서버에 설치되어있는 경우 브라우저에서 액세스하지 못하면 실행 중인지 여부를 확인할 수 없습니다. 연결하지 못할 수 있습니다.
Marco Lackovic 2013 년

Ubuntu에 Tomcat8을 설치했지만 localhost : 8080 으로 이동하면 "연결할 수 없음"메시지가 표시됩니다.
ibodi

1
Linux에 헤드리스 서버가있는 경우 이것은 옵션이 아닙니다.
Klaus Nji

5

wget url또는 curl url 여기서 url은 사용할 수 있어야하는 Tomcat 서버의 URL입니다 wget http://localhost:8080. 예 : . 그런 다음 0이면 종료 코드를 확인합니다. tomcat이 작동 중입니다.


4

tomcat이 작동 또는 작동 중지되었는지 확인하는 Shell 스크립트를 만들고 sh에 대한 cron을 설정하여 몇 분마다 확인하고 작동 중지되면 tomcat을 자동으로 시작합니다. 아래 코드의 샘플 스 니펫

TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo TOMCAT PROCESSID $TOMCAT_PID

if [ -z "$TOMCAT_PID" ]
then
    echo "TOMCAT NOT RUNNING"
    sudo /opt/tomcat/bin/startup.sh
else
   echo "TOMCAT RUNNING"
fi

나는 바람둥이를 중지하더라도 항상 "TOMCAT RUNNING"을 반환하는 쉘 스크립트를 만들었습니다. 그러나 콘솔에서 명령을 실행하면 정상적으로 작동했습니다.
Charles PHAM

쉘 스크립트 이름이 tomcat 키워드가 아닌지 확인하십시오. 스크립트에 tomcat 이름이 있으면 프로세스 목록에서 쉘 스크립트 이름이 표시되고 코드는 tomcat이 실행중인 것처럼 생각합니다. tomcat 키워드없이 스크립트에 이름을 지정할 수 있습니다
Devendra Dora

3

실행중인 프로세스 또는 열린 포트가 반드시 실제로 요청을 처리한다는 것을 의미하지는 않는다는 점에서 Tomcat이 다소 까다 롭다는 것을 알았습니다. 나는 일반적으로 알려진 페이지를 잡고 그 내용을 미리 계산 된 예상 값과 비교하려고합니다.


3

나는 항상한다

tail -f logs/catalina.out

내가 거기를 보면

INFO: Server startup in 77037 ms

그러면 서버가 작동하는 것을 압니다.


2

경보 시스템을 설정하려고합니까? 간단한 "하트 비트"의 경우 Tomcat 포트에 대한 HTTP 요청을 수행하십시오.

보다 정교한 모니터링을 위해 JMX 및 / 또는 SNMP를 설정하여 JVM 통계를 볼 수 있습니다. SNMP 플러그인 (JMX로 연결)과 함께 Nagios를 실행하여 Tomcat 메모리 사용량을 확인하고 10-15 분마다 스레드 풀 크기를 요청합니다.

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

업데이트 (2012) :

Tomcat 프로세스를 확인하기 위해 "monit"를 사용하도록 시스템을 업그레이드했습니다. 난 정말 좋아. 매우 적은 구성으로 서비스가 실행 중인지 자동으로 확인하고 그렇지 않은 경우 자동으로 다시 시작합니다. (이메일 알림 보내기). /etc/init.d 스크립트와 통합하거나 프로세스 이름으로 확인할 수 있습니다.


1

내 tomcat 인스턴스의 이름은 tomcat_입니다. 예를 들면. tomcat_8086, 나는

#

ps aux | grep tomcat

다른 방법은 nc 유틸리티를 사용하는 것입니다.

nc -l 8086 (포트 번호 )

또는

ps aux | grep java


1

이 명령을 시도하십시오

ps -ef | awk '/[t]omcat/{print $2}' 

바람둥이가 실행 중이면 pid를 반환합니다.


0
$ sudo netstat -lpn |grep :8080

포트 번호를 확인하려면

$ ps -aef|grep tomcat

어떤 바람둥이가 서버에서 실행되고 있습니까?

tsssinfotech-K53U infotech # ps -aef|grep tomcat

루트 9586 9567 0 11:35 pts / 6 00:00:00 grep --colour = auto tomcat


0

기본적으로 테스트하고 싶습니다.

  1. Tomcat 인스턴스에 연결
  2. 몇 가지 기본 통계 수집
  3. 유닉스 프로세스가 실행 중인지 여부

세 번째 옵션이 이미 충분히 답변되었으므로 처음 두 옵션을 평가하겠습니다.

가장 쉬운 방법은 웹 애플리케이션에서 몇 가지 기본 메트릭을 수집하고 결과를 읽거나 연결 문제를 감지 할 수있는 클라이언트가있는 웹 페이지를 개발하는 것입니다.

이를 위해 몇 가지 문제가 있습니다.


0

여기 내 2 센트입니다.

클러스터 설정을 위해 서로 다른 포트에서 실행되는 여러 Tomcat 인스턴스가 있습니다. 다음 명령을 사용하여 다른 포트에서 실행되는 각 프로세스를 확인합니다.

/sbin/fuser 8080/tcp

필요에 따라 포트 번호를 교체하십시오.

그리고 -k위의 명령에서 프로세스 사용 을 종료하십시오.

  • 이것은 ps -ef명령을 호출 grep하고 그 위에 다른 명령을 호출하는 방법이나 다른 명령 보다 훨씬 빠릅니다 .
  • tomcat의 여러 설치 또는 동일한 서버에서 실제로 실행되는 포트를 사용하는 다른 서버와 잘 작동합니다.

BSD운영 체제 에서 동일한 명령은 다음과 같습니다.fstat


0

tomcat.sh 이를 쉽게 알 수 있습니다.

tomcat.sh 사용법 문서는 말한다 :

인수 없음 : 바람둥이의 프로세스 ID를 표시합니다 (실행중인 경우), 그렇지 않으면 아무 작업도하지 않습니다.

따라서 명령 프롬프트에서 명령을 실행하고 pid를 확인하십시오.

$ tomcat.sh

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.