दिलचस्प पोस्ट
कस्टम डेअलोक और एआरसी (उद्देश्य-सी) एक multibyte स्ट्रिंग को n वर्णों को छोटा करें क्लाइंट आईपी पता jQuery का उपयोग कैसे करें जिस तरह से फ़ायरबेज डेटाबेस क्विकस्टार्ट सुरक्षित हैं, वह गिनती सुरक्षित है? MATLAB में हैश तालिकाएं एमवीसी 5 बीज उपयोगकर्ता और भूमिकाएं JQuery गतिशील रूप से जावास्क्रिप्ट फाइल को लोड करने के लिए जावास्क्रिप्ट-स्मृति विचारों में एक वायदेय श्रृंखला का निर्माण करना अस्थायी-बिंदु संख्याओं में सटीकता की समस्याओं से निपटना स्ट्रिंग को जावा में दूसरे स्थान पर कनवर्ट करें ऑब्जेक्ट के लिए LINQ के साथ पेजिंग विंडो को शीर्ष पर रखें और WinForms में फोकस करें केस और ग्रुप द्वारा धुरी के लिए डायनामिक विकल्प सीएसएस 100% ऊँचाई लेआउट जावा में बाइट्स को कैसे पूर्णांक दिया जाता है?

पोर्ट द्वारा इसके द्वारा उपयोग किए जाने वाले पोर्ट को खोजकर एक प्रक्रिया को मार डालो। बैट

विंडोज में पोर्ट 8080 के लिए क्या देख सकते हैं और इसे बीएटी फ़ाइल के माध्यम से उपयोग की जाने वाली प्रक्रिया को मारने का प्रयास करें?

वेब के समाधान से एकत्रित समाधान "पोर्ट द्वारा इसके द्वारा उपयोग किए जाने वाले पोर्ट को खोजकर एक प्रक्रिया को मार डालो। बैट"

आपको आरंभ करने के लिए यहां एक कमांड है:

FOR /F "tokens=4 delims= " %%P IN ('netstat -a -n -o ^| findstr :8080') DO @ECHO TaskKill.exe /PID %%P 

जब आप अपनी बैच फाइल में विश्वास रखते हैं, तो @ECHO हटाएं

 FOR /F "tokens=4 delims= " %%P IN ('netstat -a -n -o ^| findstr :8080') DO TaskKill.exe /PID %%P 

ध्यान दें कि आपको इसे अलग-अलग ओएस के लिए थोड़ा बदलना होगा। उदाहरण के लिए, विंडोज 7 पर tokens=5 बजाय tokens=5 आवश्यकता हो सकती है

यह कैसे काम करता है

 FOR /F ... %variable IN ('command') DO otherCommand %variable... 

यह आपको command निष्पादित करने देता है, और इसके आउटपुट पर लूप। प्रत्येक पंक्ति %variable में भर जाएंगी, और आप जितनी otherCommand उतनी बार अन्य otherCommand में विस्तारित किया जा सकता है, जहां कहीं भी आप चाहें। वास्तविक उपयोग में %variable में केवल एक-अक्षर का नाम हो सकता है, जैसे कि %V

 "tokens=4 delims= " 

यह आपको प्रत्येक पंक्ति को व्हाटस्पेस से विभाजित करने देता है, और उस पंक्ति में चौथा हिस्सा लेता है, और इसे %variable में डालता है (हमारे मामले में, %%P )। delims खाली लग रहा है, लेकिन उस अतिरिक्त जगह वास्तव में महत्वपूर्ण है

 netstat -a -n -o 

बस इसे चलाएं और पता करें कमांड लाइन सहायता के अनुसार, यह "सभी कनेक्शन दिखाता है और बंदरगाहों को सुनता है।", "संख्यात्मक रूप में पते और पोर्ट संख्या प्रदर्शित करता है।", और "प्रत्येक कनेक्शन से संबंधित स्वामित्व प्रक्रिया आईडी को प्रदर्शित करता है।" किसी और के सुझाव के बाद से मैं इन विकल्पों का उपयोग किया, और यह काम करने के लिए हुआ 🙂

 ^| 

यह पहले कमांड या प्रोग्राम ( findstr ) का आउटपुट लेता है और इसे दूसरे कमांड प्रोग्राम ( findstr ) पर findstr । यदि आप इसे सीधे कमांड लाइन पर प्रयोग कर रहे थे, तो कमांड स्ट्रिंग के बजाय, आप का उपयोग करेंगे के बजाय ^|

 findstr :8080 

यह उस किसी भी आउटपुट को फ़िल्टर करता है, जिसमें केवल उन पंक्तियों को लौटाया जाता है जिनमें शामिल है :8080

 TaskKill.exe /PID <value> 

यह प्रक्रिया आईडी का उपयोग करते हुए चलने वाला कार्य को मारता है

 %%P instead of %P 

यह बैच फ़ाइलों में आवश्यक है यदि आप कमांड प्रॉम्प्ट पर ऐसा करते हैं, तो आप इसके बजाय %P उपयोग करेंगे।

कमांड प्रॉम्प्ट खोलें और निम्न कमांड चलाएं

  C:\Users\username>netstat -o -n -a | findstr 0.0:3000 TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116 C:\Users\username>taskkill /F /PID 3116 

, यहाँ 3116 प्रक्रिया आईडी है

यहां कमांड लाइन के नीचे कमांड लाइन उपयोग पर विशिष्ट प्रक्रिया प्राप्त करने के लिए यहां 8080 प्रक्रिया द्वारा उपयोग किया जाने वाला पोर्ट है

 netstat -ano | findstr 8080 

प्रक्रिया को मारने के लिए नीचे कमांड का उपयोग करें यहां 21424 प्रोसेस आईडी है

 taskkill /pid 21424 /F 

मर्लिन के समाधान का उपयोग करने से फ़ायरफ़ॉक्स जैसे अन्य अनुप्रयोगों को मार दिया गया था। ये प्रक्रिया समान पोर्ट का उपयोग कर रही थीं, लेकिन श्रोता के रूप में नहीं थीं:

उदाहरण के लिए:

 netstat -a -n -o | findstr :8085 TCP 0.0.0.0:8085 0.0.0.0:0 LISTENING 6568 TCP 127.0.0.1:49616 127.0.0.1:8085 TIME_WAIT 0 TCP 127.0.0.1:49618 127.0.0.1:8085 TIME_WAIT 0 

इसलिए, इन्हें खोजक को "सुनना" जोड़कर इन्हें शामिल कर सकते हैं:

 FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :8085.*LISTENING') DO TaskKill.exe /PID %%P 

पोर्ट 8080 पर चलने वाली सभी प्रक्रियाओं को सूचीबद्ध करने के लिए निम्नलिखित कार्य करें।

नेटस्टैट -नो | "8080" खोजें

 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10612 TCP [::]:8080 [::]:0 LISTENING 10612 

फिर प्रक्रिया को मारने के लिए निम्न आदेश चलाएं

कार्यकुशल / एफ / पीआईडी ​​10612

आप सभी को धन्यवाद, बस जोड़ने के लिए कि कुछ प्रक्रिया बंद नहीं होती जब तक कि / एफ बल स्विच भी कार्यकुशल के साथ नहीं भेजती। इसके अलावा / टी स्विच के साथ, प्रक्रिया के सभी माध्यमिक धागे बंद हो जाएंगे।

 C:\>FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :2002') DO TaskKill.exe /PID %P /T /F 

सेवाओं के लिए यह सेवा का नाम प्राप्त करना और निष्पादित करना आवश्यक होगा:

sc रोक सेवानाम

देखो क्या प्रक्रिया बंदरगाह सुन रहा है: आप कैसे पता लगा सकते हैं कि कौन सी प्रक्रिया विंडोज़ पर एक बंदरगाह सुन रही है?

इसे मार डालो: प्रक्रियाओं को मारने के लिए विंडोज। बीट फाइल लिखने का कोई भी तरीका?

बस पूरा होने के लिए:

मैं एक विशेष बंदरगाह से जुड़े सभी प्रक्रियाओं को मारना चाहता था, लेकिन प्रक्रिया सुनना नहीं

बंदरगाह 9 00 के लिए कमांड (सीएमडी खोल में) है:

 FOR /F "tokens=5 delims= " %P IN ('netstat -ano ^| findstr -rc:":9001[ ]*ESTA"') DO TaskKill /F /PID %P 

खोजः

  • आर अभिव्यक्ति के लिए है और सी के लिए सटीक श्रृंखला के लिए मैच।
  • [] * रिक्त स्थान मिलान करने के लिए है

नेटस्टेट :

  • एक -> सभी
  • n -> हल नहीं (तेज)
  • ओ -> पीआईडी

यह काम करता है क्योंकि नेटस्टेट स्रोत बंदरगाह को गंतव्य पोर्ट और उसके बाद प्रतिष्ठापित करता है

Merlyn की प्रतिक्रिया के समान, लेकिन यह एक भी इन मामलों को संभालता है:

  • पोर्ट नंबर वास्तव में एक और लंबी पोर्ट संख्या का एक बायां ऑब्जेक्ट है जिसे आप नहीं ढूंढ रहे हैं। आप एक सटीक पोर्ट संख्या के लिए खोज करना चाहते हैं ताकि आप यादृच्छिक, निर्दोष प्रक्रिया को न मार सकें!
  • स्क्रिप्ट कोड को एक से अधिक बार चलाने और हर बार सही होने में सक्षम होने की आवश्यकता होती है, पुराने, ग़लत उत्तर नहीं दिखा रहा है

यह रहा:

 set serverPid= for /F "tokens=5 delims= " %%P in ('netstat -a -n -o ^| findstr /E :8080 ') do set serverPid=%%P if not "%serverPid%" == "" ( taskkill /PID %serverPid% ) else ( rem echo Server is not running. ) 

कदम:

  1. अपने अपाचे टोमट सर्वर के conf फोल्डर पर जाएं। मेरे मामले में, इसकी apache-tomcat-7.0.61\conf रूप में मैं एपाचे-टॉमकाट-7.0.61 का उपयोग कर रहा हूं

  2. ओपन server.xml और 8080 से पोर्ट नंबर को अपनी इच्छा के रूप में किसी अन्य पोर्ट में बदल दें। उदाहरण के लिए: 8081,8082,8087 आदि

  3. अब bin फ़ोल्डर पर जाएं और shutdown.bat चलाएं

  4. अब ग्रहण के माध्यम से सर्वर को पुनरारंभ करें

अब आपकी परियोजना बिना किसी रुकावट के काम करेगी।

अगर किसी को पावरहेल स्क्रिप्ट की तलाश है:

 function Search-And-Destroy { param ( [Parameter(Mandatory=$true)][string]$port ) $lines = netstat -a -o -n | findstr $port $ports = @() ForEach($line In $lines) { $res = $($lines -split '\s+') $ports += $res[5] } $ports = $ports | select -uniq ForEach($port In $ports) { echo $(taskkill /F /PID $port) } } 

यह फ़ंक्शन मूल रूप से उपर्युक्त कार्य करता है, लेकिन यह पावरशेल्थ स्क्रिप्टिंग प्रारूप में है ताकि आप इसे अपने पावरहेल प्रोफ़ाइल में जोड़ सकें। अपने प्रोफाइल का स्थान खोजने के लिए powershell पर जाएं और टाइप करें echo $profile टाइप करें

यदि आप पोर्ट 8080 पर सुन रही प्रक्रिया को मारना चाहते हैं, तो आप PowerShell का उपयोग कर सकते हैं। बस Stop-Process साथ Get-NetTCPConnection cmdlet को संयोजित Get-NetTCPConnection

टेस्टेड और Windows 10 या Windows Server 2016 पर PowerShell 5 के साथ काम करना चाहिए। हालांकि, मुझे लगता है कि इसे पुराने Windows संस्करणों पर भी कार्य करना चाहिए, जिसमें PowerShell 5 इंस्टॉल किया गया है।

यहाँ एक उदाहरण है:

 PS C:\> Stop-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess Confirm Are you sure you want to perform the Stop-Process operation on the following item: MyTestServer(9408)? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):