Tomcat çalışıyor mu?


109

İnsanların Tomcat'in bir Unix ortamında çalışıp çalışmadığını nasıl kontrol ettiklerini merak ediyorum.

İşlemin çalışıp çalışmadığını kontrol ederim.

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

veya port numarasının aktif olup olmadığını kontrol ederim

netstat -a | grep 8080

Tomcat'in çalışıp çalışmadığını kontrol etmenin daha iyi bir yolu var mı? Yukarıdakiler Tomcat'in çalışıp çalışmadığını kontrol etmenin 'hacky' bir yolu gibi görünüyor.

Yanıtlar:


57

Neden grep ps, pid$CATALINA_PID dosyaya ?

Bir var cronerkek kedi aşağı olduğunda e-posta gönderir 'd denetleyicisi komut:

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

Sanırım wgeterkek kedinizin sağlığını kontrol etmek için de kullanabilirsiniz . Kullanıcı yükü vb. İçeren bir teşhis sayfanız varsa, bunu periyodik olarak getirebilir ve herhangi bir sorun olup olmadığını belirlemek için ayrıştırabilirsiniz.


bunu pencerelerle yapmak kadar kolay mı? Windows eşdeğerleri için komutları değiştirir miyim, onu bir toplu iş dosyasına atar ve ardından zamanlayıcı aracılığıyla planlama yapar mıyım?
liltitus27

tasklist |find /I "Tomcat" || echo "Tomcat not running"Bir yarasa dosyasında satırları boyunca bir şeyler yapabilirsiniz , ancak işlem adının ne olduğuna bağlı olarak Tomcat'i değil java'yı bulmanız gerekebilir.
GL2014

1
İşletim sistemi yüklü Tomcat'inizden $ CATALINA_PID değerinin ne olduğunu öğrenmek için şunu deneyin: ps aewwx | grep CATALINA_PID ve bunu diğer ortam değişkenlerinin yanı sıra çalışan işlemin çıktısında bulacaksınız. Debian 8'de bu değer şöyledir: CATALINA_PID = / var / run / tomcat8.pid
Profesör Falken

2
Bir pid dosyasının mevcut olmayabileceğini, ortama ve tomcat'in nasıl başlatıldığına bağlıdır. Başlangıçta bir pid dosyası oluşturmak için bu yanıta bakın .
Alberto de Paola

92

Linux sistemimde Tomcat'i startup.sh betiğiyle başlatıyorum. Çalışıp çalışmadığını bilmek için kullanıyorum

ps -ef | grep tomcat  

Çıktı sonucu tomcat klasörümün tam yolunu içeriyorsa, o zaman çalışıyor demektir


68

bunun yerine bunu deneyin ve kök ayrıcalıklarına ihtiyaç duyduğu için sudo kullanın

sudo service tomcat7 status

17
Ya Tomcat bir hizmet değilse? Bunun yerine bir paket.
emeraldhieu

1
@ Emerald214 bu durumda birtomcat7: unrecognized service
Yar

@Yar, bu sizin tomcat sürümünüze bağlıdır
tmh

14

netstat -lnp | grep 8080Tomcat'in dinleme bağlantı noktasını biliyorsanız, muhtemelen en iyi yol olacaktır. Bunun işlevsel olduğundan emin olmak istiyorsanız, bir bağlantı kurmanız ve bir HTTP isteği göndermeniz ve bir yanıt almanız gerekir. Bunu programlı olarak veya herhangi bir web tarayıcısı kullanarak yapabilirsiniz.


Bağlantı noktasını biliyorsanız, Tomcat'i nasıl kurduğunuza, bir hizmet olup olmadığına bağlı olarak yürütülebilir dosyanın çalışıp çalışmadığını kontrol etme şeklinizde farklılıklar olduğu göz önüne alındığında, bunun en basit yol olduğunu düşünüyorum.
Jaffer

9

Tomcat'in durumunu aşağıdaki yollarla kontrol edebilirsiniz:

ps -ef | grep tomcat  

Bu, tomcat çalışıyorsa tomcat yolunu döndürecektir

netstat -a | grep 8080

8080, tomcat limanıdır


7

Tomcat yerel olarak yüklüyse, aşağıdaki url'yi bir tarayıcı penceresine yazın: {localhost: 8080}

Bu, Tomcat ana sayfasını aşağıdaki mesajla gösterecektir.

Bunu görüyorsanız, Tomcat'i başarıyla yüklediniz. Tebrikler!

Tomcat ayrı bir sunucuya kurulursa, localhost yerine geçerli bir ana bilgisayar adı veya tomcat'in kurulu olduğu yer daha az yazabilirsiniz.

Yukarıdakiler, tomcat'in varsayılan 8080 bağlantı noktasını kullandığı standart bir kurulum için geçerlidir.


19
Tomcat ayrı bir sunucuya kurulursa, ona bir tarayıcıdan erişememek, çalışıp çalışmadığını size kesin olarak söylemez: erişilemez olabilir.
Marco Lackovic

Tomcat8'i Ubuntu'ya kurdum, ancak localhost'a gittim : 8080 "Bağlanılamıyor" mesajıyla sonuçlanıyor.
ibodi

1
Linux'ta başsız bir sunucunuz varsa, bu bir seçenek değildir.
Klaus Nji

5

wget urlveya curl url URL örneğin mevcut olmalıdır erkek kedi sunucunun bir url'dir: wget http://localhost:8080. Ardından 0 ise çıkış kodunu kontrol edin - tomcat yukarı.


4

Tomcat'in yukarı veya aşağı olup olmadığını kontrol eden bir Kabuk betiği oluşturun ve birkaç dakikada bir kontrol etmesi için sh için bir cron ayarlayın ve kapalıysa tomcat'i otomatik olarak başlatın. Aşağıdaki kod parçacığı örneği

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'i durdurduğum halde her zaman "TOMCAT RUNNING" döndüren bir kabuk betiği oluşturdum. Ancak komutu konsolda çalıştırdığımda iyi çalıştı.
Charles PHAM

Kabuk komut dosyası adının tomcat anahtar kelimesi olmadığından emin olun. Eğer komut dosyası tomcat adına sahipse, işlem listesinde kabuk komut dosyası adı görünür, kod tomcat çalışıyormuş gibi düşünür. Tomcat anahtar kelimesi olmadan betiğe herhangi bir isim verebilirsiniz
Devendra Dora

3

Tomcat'i oldukça titiz buldum, çünkü çalışan bir işlem veya açık bir bağlantı noktası, aslında istekleri işlediği anlamına gelmiyor. Genellikle bilinen bir sayfayı alıp içeriğini önceden hesaplanmış bir beklenen değerle karşılaştırmaya çalışırım.


3

her zaman yaparım

tail -f logs/catalina.out

Orayı gördüğümde

INFO: Server startup in 77037 ms

o zaman sunucunun açık olduğunu biliyorum.


2

Bir uyarı sistemi kurmaya mı çalışıyorsunuz? Basit bir "kalp atışı" için Tomcat bağlantı noktasına bir HTTP isteği yapın.

Daha ayrıntılı izleme için, JVM istatistiklerini görüntülemek için JMX ve / veya SNMP ayarlayabilirsiniz. Nagios'u, Tomcat bellek kullanımını kontrol etmek ve her 10-15 dakikada bir iş parçacığı havuzu boyutu talep etmek için SNMP eklentisiyle (JMX'e köprüler) çalıştırıyoruz.

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

Güncelleme (2012):

Tomcat sürecini kontrol etmek için sistemlerimizi "monit" kullanacak şekilde yükselttik. Gerçekten beğendim. Çok az yapılandırmayla, hizmetin çalıştığını otomatik olarak doğrular ve çalışmıyorsa otomatik olarak yeniden başlar. (bir e-posta uyarısı gönderme). /Etc/init.d betikleri ile entegre olabilir veya işlem adına göre kontrol edebilir.


1

Tomcat örneklerim tomcat_ olarak adlandırıldığından beri. Örneğin. tomcat_8086, kullanıyorum

#

ps aux | grep tomcat

Diğer yöntem nc yardımcı programını kullanıyor

nc -l 8086 (Port numarası )

Veya

ps aux | grep java


1

Bu komutu deneyin

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

Tomcat çalışıyorsa pid'i döndürecektir.


0
$ sudo netstat -lpn |grep :8080

Bağlantı noktası numarasını kontrol etmek için

$ ps -aef|grep tomcat

Sunucunun altında çalışan herhangi bir tomcat var mı?

tsssinfotech-K53U infotech # ps -aef|grep tomcat

kök 9586 9567 0 11:35 puan / 6 00:00:00 grep - renk = otomatik erkek kedi


0

Temelde test etmek istiyorsunuz

  1. Tomcat örneğinizle bağlantı
  2. Bazı temel istatistikleri toplayın
  3. Unix işleminin çalışıp çalışmadığı

İlk 2 seçeneği, 3. seçenek zaten yeterince cevaplanmış olarak değerlendireceğim.

En kolayı, Web Uygulamanızda bazı temel ölçütleri toplayan ve sonuçları okuyabilen veya bağlantı sorunlarını tespit edebilen bir istemciye sahip olan bir web sayfası geliştirmektir.

Bunu yapmak için birkaç sorununuz var


0

İşte iki sentim.

Küme kurulumum için farklı bağlantı noktalarında çalışan birden çok tomcat örneğim var. Farklı bağlantı noktalarında çalışan her işlemi kontrol etmek için aşağıdaki komutu kullanıyorum.

/sbin/fuser 8080/tcp

Port numarasını ihtiyacınıza göre değiştirin.

Ve işlemi öldürmek -kiçin yukarıdaki komutu kullanın.

  • Bu, ps -efbir komut çağırdığınız grepve üstüne başka bir komut çağırdığınız yoldan veya diğer komutlardan çok daha hızlıdır .
  • Birden çok tomcat yüklemesiyle veya aynı sunucuda çalışan bir bağlantı noktasını kullanan diğer herhangi bir sunucuda iyi çalışır.

BSDİşletim sistemlerinde eşdeğer komut şudur:fstat


0

tomcat.sh bunu kolayca bilmenize yardımcı olur.

tomcat.sh kullanım belgesi diyor ki:

argüman yok: çalışıyorsa tomcat'in işlem kimliğini görüntüleyin, aksi takdirde hiçbir şey yapmayın

Öyleyse, komut isteminizde komutu çalıştırın ve pid'i kontrol edin:

$ tomcat.sh

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.