समस्या अक्सर तब होती है जब Apache Tomcat समाप्त करने में विफल रहता है, ठीक से, भले ही एक शटडाउन निर्देश भेजा गया था। मेरे मामले में, टॉमकैट 8 का उपयोग करते हुए, यह कष्टप्रद नियमितता के साथ होता है। सौभाग्य से, आप netstat
प्रक्रिया को मारने के लिए एक सरल स्क्रिप्ट बनाने के लिए Windows PowerShell और कमांड का उपयोग कर सकते हैं ।
निम्न PowerShell स्क्रिप्ट आउटपुट को पार्स करेगा जो netstat
किसी भी प्रक्रिया को सुन रहा है 127.0.0.1:8005
, उस पर अपना PID निकालें और फिर उस प्रक्रिया को मारें:
netstat -a -o -n `
| select -skip 4 `
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
| ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
| % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }
यदि आपका server.xml
टॉमकैट एक अलग पोर्ट या आईपी का उपयोग करने के लिए कॉन्फ़िगर करता है, तो स्क्रिप्ट की चौथी पंक्ति के अनुसार नियमित अभिव्यक्ति को संपादित करें।
अंत में, मुझे यह बताना चाहिए कि लिनक्स पर स्थिति बेहतर है क्योंकि आप टॉमकैट को स्टार्टअप-टाइम पर एक फ़ाइल के लिए अपने पीआईडी को बचाने के लिए निर्देश दे सकते हैं और शटडाउन को मजबूर करने के लिए एक स्विच का उपयोग कर सकते हैं, बाद में - 'निक्स सिस्टम' के लिए शटडाउन स्क्रिप्ट में पहले से ही विशेषताएं हैं प्रक्रिया को मारने की क्षमता और इसके साथ काम करने netstat
की आवश्यकता नहीं है।