Ubuntu पर एक बंदरगाह पर एक प्रक्रिया को मारने के लिए कैसे


488

मैं ubuntu में एक विशिष्ट बंदरगाह के लिए कमांड लाइन में एक प्रक्रिया को मारने की कोशिश कर रहा हूं।

यदि मैं इस कमांड को चलाता हूं तो मुझे पोर्ट मिलता है:

sudo lsof -t -i:9001

इसलिए ... अब मैं दौड़ना चाहता हूं:

sudo kill 'sudo lsof -t -i:9001'

मुझे यह त्रुटि संदेश मिला:

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

मैंने कोशिश की sudo kill 'lsof -t -i:9001'और साथ ही


9
FYI करें, उबंटू के सवालों के StackExchange (StackOverflow) नेटवर्क के उबंटू भाग पर पूछे जाने का बेहतर मौका है: askubuntu.com
JScoobyCed

जवाबों:


900

आप बैकटिक का उपयोग नियमित रूप से टिक नहीं करना चाहते हैं:

sudo kill -9 `sudo lsof -t -i:9001`

यदि वह काम नहीं करता है तो आप $()कमांड प्रक्षेप के लिए भी उपयोग कर सकते हैं :

sudo kill -9 $(sudo lsof -t -i:9001)

43
आप सिग्नल विकल्प जोड़ना भूल गए। पढ़ना चाहिए:sudo kill -9 $(sudo lsof -t -i:9001)
फ्रांसेस्को ग्रामानो

7
@FrancescoGramano: आप -9 का उपयोग तब तक नहीं करना चाहते जब तक आपको करना न पड़े।
zellio

2
जब sudo killप्रक्रिया को नहीं मार सकते, @ putra.koreng की विधि अच्छी तरह से काम करती है
Fangxin

3
यदि ऊपर काम नहीं कर रहा है, तो इसे आज़माएँ: stackoverflow.com/a/50515868/9339242
अर्यन सिंह

1
क्या यह OS स्वतंत्र या लिनक्स विशिष्ट है? यदि लिनक्स विशिष्ट है, तो भी यह कमांड काम करता हैos.system("fuser -k 8080/tcp");
रिधुदर्शन


78

UBUNTU के लिए 1- खोजें कि कौन सा एप्लिकेशन / प्रक्रिया प्रो का उपयोग कर रही है, टाइप करें:

sudo netstat -lpn |grep :8080

और Enter दबाएं।

आपको इसके समान आउटपुट मिलेगा

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

2- मुझे प्रक्रिया आईडी मिली है, जो कि 6782 है, अब यह प्रक्रिया है जो पोर्ट 8080 का उपयोग कर रही है।

3- प्रक्रिया को मारें, टाइप करें: 6782 को मारें

kill 6782

3
शॉर्ट और क्रिस्प उत्तर
विकास कुकरेती

1
पूरी तरह से काम किया
टायलर बेल

क्या आप कृपया लिख ​​सकते हैं कि आप उपरोक्त आदेश का उपयोग कैसे कर रहे हैं?
मोहित सिंह

1
सिर्फ महान काम किया, जबकि अधिक उभार वाले कमांडरों को मेरे Ubuntu 18.04 सर्वर पर नहीं मिला। धन्यवाद!
सालिवन

38

उबंटू टर्मिनल में एक बंदरगाह को मारने का सबसे अच्छा तरीका है fuser -k 9001/tcp


3
मेरे लिए निर्दोष काम किया
झवेरी से मिलिए

इसने मेरे लिए भी काम किया। यह स्वीकृत उत्तर होना चाहिए।
कोडस्लेव

35

कुछ प्रक्रियाएं हैं जो सामान्य नेटस्टैट कमांड का उपयोग करके नहीं दिखाई देती हैं, इसलिए आपको इसका उपयोग करके जांचना होगा sudo

करते हैं sudo netstat -lpn |grep :8080। सिस्टम द्वारा चल रही प्रक्रिया पीआईडी ​​नहीं दिखाती है, इस प्रक्रिया के पीआईडी ​​पाने के लिए आपको इसका उपयोग करके इसे चलाना होगाsudo

और फिर पोर्ट का उपयोग करके प्रक्रिया को मार डालो 8080। आपको sudoयहां भी उपयोग करना पड़ सकता है । तो इस प्रक्रिया को मारने के लिए उपयोग करेंsudo kill -9 PID


19

किलपोर्ट कमांड का उपयोग करें :

sh killport 9001 

शेल डाउनलोड करने के लिए, आप उपयोग कर सकते हैं wget:

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport

1
अगर यह काम नहीं कर रहा है, तो इसका मतलब है कि लक्ष्य बंदरगाह पहले से ही बंद है
अब्देनौर TOUMI

17

Ubuntu में बंदरगाह सेवा को मारने के लिए, टर्मिनल में नीचे कमांड दर्ज करें

टर्मिनल में:

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp

यह सरल एक महान कर रही है।
ट्राई

15

आप ऐसा करने के लिए फ्यूज़र का उपयोग भी कर सकते हैं (डिफ़ॉल्ट रूप से SIGKILL भेजता है): sudo fuser -k 9001/tcp


15

बस दर्ज करें

    fuser -k -n tcp 3000

टर्मिनल में, जहां 3000 आपका पोर्ट नंबर है


1
फ़्यूज़र का उपयोग करना: यह दिखाएं कि कौन सी प्रक्रियाएँ नामित फ़ाइलों, सॉकेट्स या फ़ाइल्ससिस्टम का उपयोग करती हैं -k: एक मार के लिए खड़ा है -n: नेटस्टैट tcp: यह आपके पोर्ट 3000 का उपयोग करने के लिए एक प्रोटोकॉल है: कस्टम पोर्ट यहां लिंक है: askuntuuntu.com/questions / २० -६० ९ / आई-कैंट-किल-ए-पोर्ट-प्रक्रिया
कौशिक श्रीमाली ५'१

12

पोर्ट नंबर पर चलने वाली एक प्रक्रिया को मारने के लिए9001

sudo kill -9 $(sudo lsof -t -i:9001)


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

और अधिक के लिए आप मेरे ब्लॉग पर जा सकते हैं


11

पोर्ट पर आधारित प्रक्रिया को मारने के लिए पहले हमें दिए गए पोर्ट के लिए प्रासंगिक पीआईडी ​​का पता लगाना होगा और उस पिड का उपयोग करके मारना होगा,

मेरे मामले में मैं 3000 पोर्ट की पिड (प्रोसेस आईडी) प्राप्त करना चाहता था:

netstat -ltnp | grep -w '3000'

फिर pid को खोजें जो tcp को सुन रहा है

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

आपको 29972 मिलेगा

कमांड के नीचे इस पिड उपयोग को मारने के लिए

kill -9 29972

पोर्ट पर आधारित मार प्रक्रिया के लिए छद्म कोड

 netstat -ltnp | grep -w 'PORT'

तथा

kill -9 PID


5

मार डालो:

sudo प्रक्रिया आईडी दिखाना महत्वपूर्ण है।

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136

5

कमांड का उपयोग करें

 netstat -plten |grep java

ग्राक जावा का उपयोग किया जाता है क्योंकि टॉमकैट उनकी प्रक्रियाओं के रूप में जावा का उपयोग करता है।

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

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

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

kill -9 16085

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



3

हत्या की प्रक्रिया के लिए इसका उपयोग करें जो पोर्ट नंबर "9001" पर चल रहा है

 kill $(lsof -t -i:9001)

स्वीकार किए गए उत्तर सहित अन्य उदाहरणों के साथ निरर्थक।
केनस्टर


1
sudo kill `sudo lsof -t -i:9001`

आपको -9सिग्नल विकल्प नहीं जोड़ना है


1

इसकी दो चरणों की प्रक्रिया:

  1. पोर्ट नंबर पर प्रोसेस आईडी जानिए। 8080 (कोई भी हो सकता है)
  2. उस आईडी 8689 की मार प्रक्रिया (भिन्न हो सकती है)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    


1

सक्रिय टीसीपी कनेक्शन प्रदर्शित करता है, जिन पर कंप्यूटर सुन रहा है।

netstat -tupln

यह आपको पीआईडी ​​के साथ सभी कनेक्शनों को सूचीबद्ध करेगा। पीड को ढूंढें और कॉपी करें और निम्न कमांड चलाएँ। सुनिश्चित करें कि आप निम्न आदेश में वास्तविक आईडी से प्रतिस्थापित करते हैं।

kill -9 <copied pid>

-9 कनेक्शन को बलपूर्वक मारने के लिए उपयोग करें।


1

प्रयास करें sudo fuser PORT/tcp -k बदलें PORTउदाहरण के लिए, बंदरगाह आप को मारने के लिए चाहते हैं के साथ80


0

किल -9 $ (lsof -t -i: 9001)

प्रक्रिया को मारने के लिए इस्तेमाल किया जा सकता है। आप 9001 के बजाय किसी भी पोर्ट नंबर का उपयोग कर सकते हैं


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.