मैं वर्तमान प्रक्रिया / आवेदन को कैसे हटा सकता हूं जो पहले से ही एक पोर्ट को सौंपा गया है?
उदाहरण के लिए: localhost:8080
मैं वर्तमान प्रक्रिया / आवेदन को कैसे हटा सकता हूं जो पहले से ही एक पोर्ट को सौंपा गया है?
उदाहरण के लिए: localhost:8080
जवाबों:
चरण 1:
Cmd.exe खोलें (ध्यान दें: हो सकता है एक प्रशासक के रूप इसे चलाने के लिए की जरूरत है, लेकिन यह हमेशा जरूरी नहीं है), तो आदेश नीचे चलाएँ:
netstat -ano | findstr :PORT_NUMBER
(जिस पोर्ट नंबर को आप चाहते हैं उसके साथ PORT_NUMBER बदलें, लेकिन कोलन रखें)
लाल में परिक्रमा क्षेत्र पीआईडी (प्रक्रिया पहचानकर्ता) दिखाता है। उस प्रक्रिया की पीआईडी का पता लगाएँ जो आपके इच्छित पोर्ट का उपयोग कर रही है।
चरण 2:
अगला, निम्न कमांड चलाएँ:
taskkill /PID PORT_NUMBER /F
(इस बार कोई कोलन नहीं)
अंत में, आप जांच सकते हैं कि ऑपरेशन "चरण 1" में फिर से चल रहा है या नहीं। यदि यह सफल रहा तो आपको उस पोर्ट नंबर के लिए कोई और खोज परिणाम नहीं देखना चाहिए।
taskkill //PID 12552 //F
taskkill /PID PORT_NUMBER /F
चरण 1 ( काविंदविजय द्वारा लिखित स्वीकृत उत्तर में वही है ):
netstat -ano | findstr :yourPortNumber
चरण 2 में बदलें:
tskill typeyourPIDhere
नोट : taskkill
कुछ गिट बास टर्मिनल में काम नहीं कर रहा है
विंडोज 10 डिफ़ॉल्ट टूल के साथ:
व्यवस्थापक के रूप में Windows PowerShell खोलें
पोर्ट 8080 के लिए PID (ProcessID) ढूंढें:
netstat -aon | findstr 8080
टीसीपी 0.0.0.0:8080 0.0.0.0 लिस्टेन 77777 बढ़ रही है
ज़ोंबी प्रक्रिया को मार डालो:
taskkill /f /pid 77777
जहाँ "77777" आपका पीआईडी है
set /p port="Enter port: "
-> इनपुट पोर्ट FOR /F "tokens=5" %%T IN ('netstat -aon ^| findstr %port% ') DO ( SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
-> अर्क पीआईडी को चर में taskkill /f /pid %ProcessId%
-> कार्य को मारता है cmd /k
-> खिड़की खुली रखें
यदि आप GitBash का उपयोग कर रहे हैं
पहला कदम:
netstat -ano | findstr :8080
दूसरा चरण:
taskkill /PID typeyourPIDhere /F
( /F
बलपूर्वक प्रक्रिया को समाप्त करता है)
में विंडोज PowerShell संस्करण 1 या बाद में पोर्ट 3000 प्रकार पर एक प्रक्रिया को रोकने के:
स्टॉप-प्रोसेस (((netstat -ano | findstr: 3000) .plplit () | foreach {$ [$ .length -1]}) -F
जैसा कि @morganpdx ने यहां बताया है कि 'अधिक पावरस्ले-ईश, बेहतर संस्करण:
स्टॉप-प्रोसेस -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force
'Stop-Process' is not recognized as an internal or external command,
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
कमांड लाइन में उपयोग के लिए:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
बैट-फाइल में उपयोग के लिए:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
यदि आप पहले से ही पोर्ट नंबर जानते हैं, तो संभवतः यह प्रक्रिया के लिए एक सॉफ्टवेयर समाप्ति संकेत भेजने के लिए पर्याप्त होगा (SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
lsof -nt -i4TCP:9001
अच्छा काम कर सकते हैं ।
विंडोज उपयोगकर्ताओं के लिए, आप आसानी से उपयोग के तहत बंदरगाहों को मारने के लिए CurrPorts उपकरण का उपयोग कर सकते हैं:
मैं विंडोज़ पर ज़ुकीपर चला रहा था और ज़ूकीपर -स्टॉप.श का उपयोग करके 2181 पोर्ट पर चलने वाले ज़ूकिपर को रोकने में सक्षम नहीं था , इसलिए इस डबल स्लैश "//" की विधि को टास्ककिल करने की कोशिश की। इसने काम कर दिया
1. netstat -ano | findstr :2181
TCP 0.0.0.0:2181 0.0.0.0:0 LISTENING 8876
TCP [::]:2181 [::]:0 LISTENING 8876
2.taskkill //PID 8876 //F
SUCCESS: The process with PID 8876 has been terminated.
यदि आप विंडोज टर्मिनल का उपयोग कर रहे हैं तो हत्या की प्रक्रिया बहुत कम थकाऊ हो सकती है। मैं विंडोज़ टर्मिनल का उपयोग कर रहा हूं और kill PID
पोर्ट पर प्रक्रियाओं को मारने के लिए मेरे लिए ठीक काम करता है क्योंकि नया विंडोज टर्मिनल कुछ बैश कमांड का समर्थन करता है। उदाहरण के लिए:kill 13300
तो, पूरी प्रक्रिया इस तरह दिखाई देगी-
netstat -ano | findstr :PORT
kill PID
उदाहरण के लिए:
PS C:\Users\username> netstat -ano | findstr :4445
TCP 0.0.0.0:4445 0.0.0.0:0 LISTENING 7368
TCP [::]:4445 [::]:0 LISTENING 7368
PS C:\Users\username> kill 7368
PS C:\Users\username> netstat -ano | findstr :4445
PS C:\Users\username>
देखें कि जब मैंने पोर्ट पर प्रक्रियाओं को सूचीबद्ध करने के लिए पहला कमांड टाइप किया था तो वह खाली लौट आया। इसका मतलब है कि सभी प्रक्रियाओं को अब मार दिया गया है।
kill
। अगर मुझे लगता है यहाँ बीमार पोस्ट।
यदि आप इसे पायथन का उपयोग कर करना चाहते हैं: तो क्या यह संभव है कि अजगर को प्रक्रिया में मारना संभव हो, जो कि विशिष्ट पोर्ट पर सुन रहा है, उदाहरण के लिए 8080?
स्मंक का उत्तर अच्छी तरह से काम करता है। मैं यहां उनका कोड दोहराता हूं:
from psutil import process_iter
from signal import SIGTERM # or SIGKILL
for proc in process_iter():
for conns in proc.connections(kind='inet'):
if conns.laddr.port == 8080:
proc.send_signal(SIGTERM) # or SIGKILL
continue
GitBash का उपयोग करके एक पंक्ति समाधान :
tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`
अपने सर्वर को सुन रहे पोर्ट के साथ 8080 बदलें ।
यदि आपको इसे अक्सर उपयोग करने की आवश्यकता है, तो अपने ~/.bashrc
फ़ंक्शन को जोड़ने का प्रयास करें :
function killport() {
tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}
और बस चलाते हैं
killport 8080
हम नीचे दिए गए आदेश का उपयोग करके IIS को सरल पुनरारंभ करके इससे बच सकते हैं:
IISRESET