क्या टॉमकैट चल रहा है?


109

यह जानने के इच्छुक हैं कि लोग आमतौर पर यह देखने के लिए जांच करते हैं कि क्या टॉमकैट एक यूनिक्स वातावरण पर चल रहा है।

मैं या तो जाँच करता हूँ कि प्रक्रिया का उपयोग चल रहा है

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

या मैं जांचता हूं कि पोर्ट नंबर सक्रिय है

netstat -a | grep 8080

क्या जाँच का एक बेहतर तरीका है कि टॉमकैट चल रहा है? ऊपर से लगता है कि टॉमकैट चल रहा है कि जाँच का एक 'हैकी' तरीका है।

जवाबों:


57

क्यों grep ps, जब $CATALINA_PIDफ़ाइल में pid लिखा गया है ?

मेरे पास एक cron'डी चेकर स्क्रिप्ट है जो एक ईमेल भेजती है जब टॉमकैट डाउन होता है:

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अपने टॉमकैट के स्वास्थ्य की जांच करने के लिए भी उपयोग कर सकते हैं । यदि आपके पास उपयोगकर्ता लोड आदि के साथ एक निदान पृष्ठ है, तो आप इसे समय-समय पर प्राप्त कर सकते हैं और यह निर्धारित करने के लिए पार्स कर सकते हैं कि क्या कुछ गलत हो रहा है।


क्या यह विंडोज़ के साथ करना आसान है? क्या मैं बस विंडोज़ समकक्षों के लिए कमांड को संशोधित कर सकता हूं, इसे बैच फ़ाइल में फेंक सकता हूं, और फिर शेड्यूलर के माध्यम से शेड्यूल कर सकता हूं?
liltitus27

आप tasklist |find /I "Tomcat" || echo "Tomcat not running"एक बैट फ़ाइल में लाइनों के साथ कुछ कर सकते हैं , लेकिन आपको जावा को खोजने की आवश्यकता हो सकती है, न कि टॉमकैट इस प्रक्रिया के आधार पर।
GL2014

1
आपके ओएस-स्थापित टॉमकैट से $ CATALINA_PID का मूल्य क्या है, यह जानने के लिए, कोशिश करें: ps aewwx | grep CATALINA_PID और आप इसे अन्य पर्यावरण चर के बीच चल रही प्रक्रिया के लिए आउटपुट में पाएंगे। डेबियन 8 में यह मान है: CATALINA_PID = / var / run / tomcat8.pid
प्रोफेसर

2
यह ध्यान रखना महत्वपूर्ण है कि एक पीआईडी ​​फ़ाइल मौजूद नहीं हो सकती है, यह पर्यावरण पर निर्भर करता है और टॉमकैट कैसे शुरू किया गया था। स्टार्टअप पर एक पीआईडी ​​फ़ाइल बनाने के लिए यह उत्तर देखें ।
अल्बर्टो डे पाओला

92

अपने लिनक्स सिस्टम पर, मैं Tomcat को स्टार्टअप के साथ शुरू करता हूं। स्क्रिप्ट। यह जानने के लिए कि यह चल रहा है या नहीं, मैं उपयोग करता हूं

ps -ef | grep tomcat  

यदि आउटपुट परिणाम में मेरे टॉमकैट फ़ोल्डर का संपूर्ण पथ है, तो यह चल रहा है


68

ऐसा करें और क्योंकि यह जरूरत रूट विशेषाधिकारों का उपयोग sudo

sudo service tomcat7 status

17
यदि टॉमकैट एक सेवा नहीं है तो क्या होगा? इसके बजाय एक पैकेज।
पन्नाधाय

1
@ Emerald214 उस मामले में आप एक मिल जाएगाtomcat7: unrecognized service
यार

@ यार, यह आपके
टॉमकैट

14

netstat -lnp | grep 8080शायद सबसे अच्छा तरीका होगा, अगर आप टॉमकैट के सुनने वाले बंदरगाह को जानते हैं। यदि आप निश्चित होना चाहते हैं कि यह कार्यात्मक है, तो आपको एक कनेक्शन स्थापित करना होगा और एक HTTP अनुरोध भेजना होगा और प्रतिक्रिया प्राप्त करनी होगी। आप इस प्रोग्राम को कर सकते हैं, या किसी भी वेब ब्राउज़र का उपयोग कर सकते हैं।


यदि आप बंदरगाह को जानते हैं, तो मुझे लगता है कि यह सबसे सरल तरीका है कि इसमें भिन्नता है कि आप कैसे जांचते हैं कि निष्पादन योग्य चल रहा है या नहीं, इस आधार पर कि आप टॉमकैट को कैसे स्थापित करते हैं, इसकी सेवा या नहीं आदि
जाफर

9

आप निम्न तरीकों से टॉमकैट की स्थिति देख सकते हैं:

ps -ef | grep tomcat  

यदि टॉमकैट चल रहा है तो यह टॉमकैट पथ को वापस कर देगा

netstat -a | grep 8080

जहां 8080 में टॉमकट बंदरगाह है


7

यदि टॉमकैट स्थानीय रूप से स्थापित है, तो ब्राउज़र विंडो में निम्न यूआरएल टाइप करें: {localhost: 8080}

यह निम्नलिखित संदेश के साथ टॉमकैट होम पेज प्रदर्शित करेगा।

यदि आप इसे देख रहे हैं, तो आपने टॉमकैट को सफलतापूर्वक स्थापित किया है। बधाई हो!

यदि एक अलग सर्वर पर टॉमकैट स्थापित किया गया है, तो आप एक मान्य होस्टनाम या Iess के द्वारा लोकलहोस्ट को बदल सकते हैं जहां टॉमकैट स्थापित है।

ऊपर एक मानक स्थापना के लिए लागू होता है जिसमें टॉमकैट डिफ़ॉल्ट पोर्ट 8080 का उपयोग करता है


19
यदि टॉमकैट को एक अलग सर्वर पर स्थापित किया गया है, तो इसे ब्राउज़र से एक्सेस करने में विफल होने से आपको यह सुनिश्चित नहीं होगा कि यह चल रहा है या नहीं: यह पहुंच से बाहर हो सकता है।
मार्को लैकोविच

मैंने टॉमकैट 8 को उबंटू पर स्थापित किया है, लेकिन स्थानीयहोस्ट करने के लिए : "कनेक्ट करने में असमर्थ" संदेश में 8080 परिणाम।
आईबोडी

1
यदि आपके पास लिनक्स पर एक हेडलेस सर्वर है तो यह एक विकल्प नहीं है।
क्लॉस नजी

5

wget urlया curl url जहाँ url tomcat सर्वर का एक url है जो उपलब्ध होना चाहिए, उदाहरण के लिए wget http://localhost:8080:। फिर बाहर निकलने के कोड की जांच करें, अगर यह 0 है - टॉमकैट ऊपर है।


4

एक शेल स्क्रिप्ट बनाएं जो यह जाँचता है कि टॉमकैट ऊपर या नीचे है और इसे हर कुछ मिनटों में चेक करने के लिए शॉन के लिए क्रोन सेट करें, और यदि नीचे हो तो टॉमकैट को ऑटो स्टार्ट करें। नीचे दिए गए कोड का नमूना स्निपेट

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" को लौटाती है, यहां तक ​​कि मैंने टॉमकैट को रोक दिया। लेकिन जब मैं कंसोल पर कमांड चलाता हूं, तो यह ठीक काम करता है।
चार्ल्स PHAM

सुनिश्चित करें कि शेल स्क्रिप्ट नाम टॉमकैट कीवर्ड के रूप में नहीं है। यदि स्क्रिप्ट में टॉमकैट नाम है, तो प्रक्रिया सूची में शेल स्क्रिप्ट नाम दिखाई देगा, कोड सोचता है जैसे कि टॉमकैट चल रहा है। आप इसमें बिना टॉमकैट कीवर्ड वाली स्क्रिप्ट को कोई भी नाम दे सकते हैं
देवेंद्र डोरा

3

मैंने पाया है कि Tomcat बल्कि एक चल रही प्रक्रिया या एक खुला बंदरगाह है कि जरूरी नहीं है कि यह वास्तव में अनुरोधों से निपटने है मतलब नहीं है। मैं आमतौर पर एक ज्ञात पृष्ठ को हथियाने की कोशिश करता हूं और इसकी सामग्री की तुलना एक प्री-कॉम्प्लेक्स अपेक्षित मूल्य से करता हूं।


3

मैं हमेशा करता हॅू

tail -f logs/catalina.out

जब मैं वहां देखता हूं

INFO: Server startup in 77037 ms

तो मुझे पता है कि सर्वर ऊपर है।


2

क्या आप एक चेतावनी प्रणाली स्थापित करने की कोशिश कर रहे हैं? एक सरल "दिल की धड़कन" के लिए, टॉम्स्क पोर्ट पर एक HTTP अनुरोध करें।

अधिक विस्तृत निगरानी के लिए, आप जेवीएम आँकड़े देखने के लिए जेएमएक्स और / या एसएनएमपी सेट कर सकते हैं। हम टॉम्स्क मेमोरी उपयोग की जांच करने और हर 10-15 मिनट में थ्रेड पूल आकार का अनुरोध करने के लिए एसएनएमपी प्लगइन (जेएमएक्स के पुल) के साथ नागियोस चलाते हैं।

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

अपडेट (2012):

हमने टॉमकैट प्रक्रिया की जांच करने के लिए "मोनिट" का उपयोग करने के लिए अपने सिस्टम को अपग्रेड किया है। मुझे वास्तव में यह पसंद है। बहुत कम कॉन्फ़िगरेशन के साथ यह स्वचालित रूप से सत्यापित करता है कि सेवा चल रही है, और यदि नहीं है तो स्वचालित रूप से पुनरारंभ होता है। (ईमेल अलर्ट भेजना)। यह /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}' 

अगर टॉमकैट चल रहा है तो यह पीआईडी ​​लौटा देगा।


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 - रंग = ऑटो टॉमकैट


0

मूल रूप से आप परीक्षण करना चाहते हैं

  1. अपने टॉमकैट उदाहरण के लिए कनेक्टिविटी
  2. कुछ बुनियादी आँकड़े इकट्ठा करो
  3. चाहे यूनिक्स प्रक्रिया चल रही हो

मैं पहले 2 विकल्पों का मूल्यांकन करूँगा क्योंकि तीसरे एक का पहले से ही पर्याप्त उत्तर दिया जा चुका है।

सबसे आसान है अपने वेबऐप पर एक वेबपेज विकसित करना जो कुछ बुनियादी मैट्रिक्स को इकट्ठा करता है, और एक क्लाइंट है जो परिणामों को पढ़ सकता है या कनेक्टिविटी मुद्दों का पता लगा सकता है।

ऐसा करने के लिए, आपके पास कई मुद्दे हैं


0

यहाँ मेरे दो सेंट हैं।

मेरे पास कई क्लस्टर इंस्टेंसेस हैं जो मेरे क्लस्टर सेटअप के लिए विभिन्न बंदरगाहों पर चल रहे हैं। मैं विभिन्न बंदरगाहों पर चल रही प्रत्येक प्रक्रियाओं की जांच करने के लिए निम्न कमांड का उपयोग करता हूं।

/sbin/fuser 8080/tcp

अपनी आवश्यकता के अनुसार पोर्ट नंबर बदलें।

और -kउपरोक्त कमांड में प्रक्रिया के उपयोग को मारने के लिए ।

  • यह ps -efरास्ते या किसी अन्य कमांड की तुलना में बहुत तेज है जहां आप एक कमांड को कॉल करते हैं और grepइसके ऊपर एक और कॉल करते हैं।
  • टॉमकैट या किसी अन्य सर्वर के कई इंस्टॉलेशन के साथ अच्छी तरह से काम करता है जो पोर्ट का उपयोग करता है तथ्य यह है कि एक ही सर्वर पर चल रहा है।

BSDऑपरेटिंग सिस्टम पर बराबर कमांड हैfstat


0

tomcat.sh यह आसानी से पता करने में आपकी मदद करता है।

tomcat.sh उपयोग डॉक्टर कहता है:

कोई तर्क नहीं: यदि यह चल रहा है, तो टॉमकैट की प्रक्रिया-आईडी प्रदर्शित करें, अन्यथा कुछ भी न करें

इसलिए, अपने कमांड प्रॉम्प्ट पर कमांड चलाएँ और pid के लिए जाँच करें:

$ tomcat.sh

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.