2012-06-18 23 views
12

से एक वेब एप्लिकेशन टॉमकैट रोकें मैं एक बैश स्क्रिप्ट लिख रहा हूं जो स्वचालित रूप से किसी एप्लिकेशन को टॉमकैट सर्वर पर तैनात करता है। मैं एप्लिकेशन को बैश/कमांड लाइन से कैसे रोक सकता हूं?कमांड लाइन

+0

आप बिलाव बंद करना चाहते हैं नामित एक आवेदन को रोकने के लिए स्थानीय या दूरस्थ रूप से? –

+0

मैं इसे स्थानीय रूप से बंद करना चाहता हूं –

उत्तर

10

मुझे पता है कि सबसे आसान तरीका है कि टॉमकैट प्रबंधक वेबपैप स्थापित करना, एप्लिकेशन को रोकने के लिए यूआरएल नोट करें, और wget वह यूआरएल।

+0

यह सही उत्तर है: यदि आप एक व्यक्तिगत वेबपैप को रोकना चाहते हैं, तो आपको इसे करने या जेएमएक्स का उपयोग करने के लिए टोमकैट के आंतरिक एपीआई का उपयोग करना होगा। प्रबंधक वेबपैप सब कुछ जो आप करना चाहते हैं उसके लिए सेट अप किया गया है, और मैनेजर वेबपैप के लिए सुरक्षा को कॉन्फ़िगर करना भी आसान है। –

+1

मेरा स्टॉप यूआरएल "org.apache.catalina.filters.CSRF_NONCE" टोकन होना चाहिए। यह इस दृष्टिकोण को जटिल बनाता है। – Soid

+0

कोट्टू का उत्तर बेहतर विवरण देता है। –

2

तीन तरीके बिल्ला आवेदन

  1. स्थानीय उपयोग के साथ बंद करने के लिए आप निश्चित रूप से सिर्फ प्रक्रिया को रोकने के कर सकते हैं। यह टॉमकैट पूरी तरह से
  2. स्थानीय और दूरस्थ पहुंच के साथ आप सर्वर.एक्सएमएल (डिफ़ॉल्ट = 8005) एलोन में अपने पासवर्ड के साथ परिभाषित "शट डाउन पोर्ट" तक पहुंच सकते हैं। यदि आप इस पर एक सॉकेट खोलते हैं और पासवर्ड भेजते हैं, तो टोमकैट पूरी तरह से बंद हो जाता है।
  3. आप सैम की सलाह का पालन करते हैं, जो आपको चुनिंदा चुनने देता है।
+0

पूरी तरह से टॉमकैट रोकना मेरा लक्ष्य नहीं है। मैं चुनिंदा होना चाहता हूं, क्योंकि मैं समानांतर –

+0

में चल रहे किसी अन्य एप्लिकेशन को रोकना नहीं चाहता हूं, तो सैम की सलाह सही है।ध्यान रखें कि एक ऐप सर्वर के लिए अनावश्यक/पुनर्वित्त परिदृश्यों के साथ स्मृति को रिसाव करना बहुत आसान है ... – MJB

12

इस command-line script for managing tomcat को टॉमकैट-प्रबंधक कहा जाता है। यह अजगर आवश्यकता है, लेकिन आप की तरह एक यूनिक्स शेल से सामान करने की अनुमति देता:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager/ stop /myapp 

और:

$ tomcat-manager --user=admin --password=newenglandclamchowder \ 
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war 

यह HTTP पर बिल्ला से बात वजह से, यह "स्थानीय रूप से" काम करता है, यानी के माध्यम से स्थानीय होस्ट, या कहीं से भी आपका tomcat उदाहरण सुलभ है।

4

मैं wget का उपयोग रोकने और अनुप्रयोगों को शुरू करने के लिए करता हूं। tomcat-user.xml में उपयोगकर्ता के पास प्रबंधक-स्क्रिप्ट भूमिकाएं होनी चाहिए।

TOMCAT 5/6 के लिए:

wget "http://<user>:<password>@<servername>:<port>/manager/stop?=/<application context>" -O - -q 
wget "http://<user>:<password>@<servername>:<port>/manager/start?=/<application context>" -O - -q 
TOMCAT 7 के बाद से

(7.0.62 मेरी स्थापना के लिए) आप प्रबंधक के बाद /text/ जोड़ने के लिए:

wget "http://<user>:<password>@<servername>:<port>/manager/text/stop?path=/<application context>" -O - -q 
wget "http://<user>:<password>@<servername>:<port>/manager/text/start?path=/<application context>" -O - -q 
2

एक और तरीका है कर्ल का प्रयोग है। मेरे मामले में, मैं एक कॉर्पोरेट विंडोज मशीन पर हूं जिसमें डब्लूजीईटी नहीं है। हालांकि मेरे पास कर्ल है, और इसका उपयोग जीआईटी बाश टर्मिनल के माध्यम से कर सकता है।

अनुप्रयोगों बिलाव पर चल सूचीबद्ध करने के लिए, मैं चलाने के निम्नलिखित (उपयोगकर्ता के साथ: पासवर्ड)

curl --user admin:admin http://localhost:8080/manager/text/list 
फिर

"MyApp"

curl --user admin:admin http://localhost:8080/manager/text/stop?path=/myapp