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.