linux लिनक्स में विशेष बंदरगाह पर चल रही प्रक्रिया को कैसे मारें?




unix port (12)

विंडोज़ में, यह netstat -ano | grep "8080" होगा netstat -ano | grep "8080" और हमें निम्न संदेश मिलता है TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

हम taskkill /F /PID 10076 का उपयोग कर पीआईडी ​​को मार सकते हैं

मैंने tomcat /bin निर्देशिका से ./shutdown.sh का उपयोग कर tomcat को बंद करने का ./shutdown.sh किया। लेकिन पाया कि सर्वर ठीक से बंद नहीं किया गया था। और इस प्रकार मैं पुनरारंभ करने में असमर्थ था
मेरा टोमकैट पोर्ट 8080 पर चल रहा है।

मैं 8080 पर चल रहे टोमकैट प्रक्रिया को मारना चाहता हूं। मैं पहली बार मारने के लिए कौन सी प्रक्रिया चुनने के लिए एक विशिष्ट बंदरगाह (8080) पर चल रही प्रक्रियाओं की सूची रखना चाहता हूं।


यह fuser 8080/tcp आपको उस बंदरगाह पर बाध्य प्रक्रिया की पीआईडी ​​प्रिंट करेगा।

और यह fuser -k 8080/tcp उस प्रक्रिया को मार देगा।

केवल लिनक्स पर काम करता है। अधिक सार्वभौमिक lsof -i4 (या IPv6 के लिए 6) का उपयोग है।


मैं विशिष्ट पोर्ट पर केवल LISTEN के लिए यह एक-लाइनर जोड़ूंगा:

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)


@ ने क्या कहा:

अगर आप जानना चाहते हैं कि बंदरगाह पर क्या था, तो इसे मारने से पहले ऐसा करें।

$ sudo netstat -plten |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1000       906726      25296/java      
tcp6       0      0 :::8009                 :::*                    LISTEN      1000       907503      25296/java      
tcp6       0      0 :::8080                 :::*                    LISTEN      1000       907499      25296/java      
$ ps 25296
  PID TTY      STAT   TIME COMMAND
25296 ?        Sl     0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom

'पीएस' और नेटस्टैट की रिपोर्ट की गई प्रक्रिया की संख्या का उपयोग करें


आदेश का प्रयोग करें

 sudo netstat -plten |grep java

इस्तेमाल किए गए grep java रूप में tomcat java को उनकी प्रक्रियाओं के रूप में उपयोग करता है।

यह पोर्ट नंबर और प्रक्रिया आईडी के साथ प्रक्रियाओं की सूची दिखाएगा

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

पहले नंबर /java एक प्रक्रिया आईडी है। अब प्रक्रिया को मारने के लिए मार कमांड का उपयोग करें

kill -9 16085

-9 तात्पर्य है कि प्रक्रिया को मजबूती से मार दिया जाएगा।


विशेष बंदरगाह पर चल रही सेवा के ढक्कन को जानने के लिए:

netstat -tulnap | grep :*port_num*

आपको उस प्रक्रिया का विवरण मिलेगा। अब मार या मार -9 पिड का उपयोग करें। आसानी से मारा गया।

जैसे

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

अभी व:

kill -9 1880

root रूप में सभी आदेशों को चलाने के लिए याद रखें


  1. lsof -i tcp:8000 यह आदेश पोर्ट 8000 में चल रही प्रक्रिया के बारे में जानकारी सूचीबद्ध करता है

  2. kill -9 [PID] यह आदेश प्रक्रिया को मारता है


इस तरह की कोशिश करो,

 sudo fuser -n tcp -k 8080

लिनक्स : यदि आप पोर्ट को जानते हैं तो सबसे पहले आप इस कमांड के पीआईडी ​​पा सकते हैं:

netstat -tulpn 

उदाहरण:-

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

फिर आप हत्या की प्रक्रिया लेते हैं। निम्न आदेश चलाएं:

मार -9 पीआईडी

उदाहरण: -

मार -9 15 9 86


बंदरगाह 8080 को सुनकर किसी भी प्रक्रिया को सूचीबद्ध करने के लिए:

lsof -i:8080

बंदरगाह 8080 को सुनकर किसी भी प्रक्रिया को मारने के लिए:

kill $(lsof -t -i:8080)

या अधिक हिंसक रूप से:

kill -9 $(lsof -t -i:8080)

लिनक्स : यदि आप पोर्ट को जानते हैं तो आप इस कमांड का उपयोग कर सकते हैं:

netstat -plten | grep LISTEN | grep 8080

एईक्स :

netstat -Aan | grep LISTEN | grep 8080

फिर आप पहला कॉलम लें (उदाहरण: f100050000b05bb8) और निम्न आदेश चलाएं:

rmsock f100050000b05bb8 tcpcb

प्रक्रियाओं को मार दो।


आप lsof कमांड का उपयोग कर सकते हैं। यहां पोर्ट पोर्ट नंबर 80 9 0 है

lsof -i:8090

यह आदेश इस बंदरगाह पर खुली प्रक्रियाओं की एक सूची देता है।

कुछ इस तरह…

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

बंदरगाह को मुक्त करने के लिए, इसका उपयोग कर प्रक्रिया को मार दें (प्रक्रिया आईडी 75782 है) ...

kill -9 75782

यह मेरे लिए काम किया। यहां मूल पोस्ट का link : link





kill-process