Django सर्वर त्रुटि: पोर्ट पहले से उपयोग में है


204

Django सर्वर को पुनरारंभ करना निम्न त्रुटि प्रदर्शित करता है:

this port is already running....

यह समस्या विशेष रूप से उबंटू और अन्य ऑपरेटिंग सिस्टम पर नहीं होती है। मैं सर्वर को पुनरारंभ करने के लिए पोर्ट को कैसे मुक्त कर सकता हूं?

जवाबों:


536

एक और अधिक सरल समाधान बस टाइप करें sudo fuser -k 8000/tcp। यह पोर्ट 8000 से जुड़ी सभी प्रक्रियाओं को मारना चाहिए।

संपादित करें:

ओएसएक्स उपयोगकर्ताओं के लिए आप उपयोग कर सकते हैं sudo lsof -t -i tcp:8000 | xargs kill -9


23
मैक पर आपको उपयोग करने की आवश्यकता होती है, sudo lsof -i tcp:8000फिर दिखाने वाले प्रोसेस आईडी को मार दें।
गॉर्डोनक

इसलिए जो भी पोर्ट ब्लॉक होता है उस पोर्ट के साथ सिर्फ 8000 की जगह होती है।
मनीष श्रीवास्तव

मुझे यह त्रुटि मिल रही है, लेकिन मैंने बंदरगाह पर सब कुछ मार दिया है।
भटकन

57
netstat -ntlp

यह कुछ इस तरह दिखाएगा।

   Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State           PID/Program name    
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      6599/python         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.124.1:53        0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN     

तो अब बस उस पोर्ट को बंद कर दें जिसमें Django / अजगर पहले से चल रही प्रक्रिया को मार रहा है।

kill -9 PID

मेरे मामले में

kill -9 6599

अब अपना Django ऐप चलाएं।


इसके लिए, हमें नेट-टूल इंस्टॉल करना होगा।
पूजा खत्री

11
ps aux | grep -i manage

after that you will see all process 


ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu    3439  0.0  2.3  40228 14064 pts/0    T    06:47   0:00 python manage.py runserver project name
ubuntu    3440  1.4  9.7 200996 59324 pts/0    Tl   06:47   2:52 /usr/bin/python manage.py runserver project name
ubuntu    4581  0.0  0.1   7988   892 pts/0    S+   10:02   0:00 grep --color=auto -i manage


kill -9 process id


e.d kill -9 3440


`enter code here`after that :

python manage.py runserver project name

तो आप सर्वर को फिर से शुरू करने की कोशिश करते हैं, जबकि एक पहले से ही चल रहा है? HTTP पोर्ट का उपयोग करने वाले पहले वाले के रूप में काम नहीं करेगा। पहले को मारने या समाप्त करने से पहले आपको फिर से दौड़ने की कोशिश करनी चाहिए (कम से कम इसे उसी बंदरगाह पर चलाना)।
कुछ प्रोग्रामर ने 10

यह काम कर रहा है क्योंकि आपने वर्तमान में चल रहे उदाहरण को मार दिया है, जो कि मैंने कहा है कि आपको क्या करना है। आप एक ही नेटवर्क पोर्ट पर दो प्रोग्राम नहीं सुन सकते, यह उतना आसान है। तो यह एक ऐसी चीज का हल है जो वास्तव में समस्या नहीं है, सिर्फ एक तथ्य है।
कुछ प्रोग्रामर ने दिनांक

मुझे खेद है कि अगर मैं मजबूत होने के लिए आ रहा हूं, तो मैं आज थोड़ा गंभीर महसूस कर रहा हूं। : /
कुछ प्रोग्रामर ने

5

डिफ़ॉल्ट रूप से, रनसेवर कमांड पोर्ट 8000 पर आंतरिक आईपी पर विकास सर्वर शुरू करता है।

यदि आप सर्वर के पोर्ट को बदलना चाहते हैं, तो इसे कमांड-लाइन तर्क के रूप में पास करें। उदाहरण के लिए, यह कमांड पोर्ट 8080 पर सर्वर शुरू करता है:

python manage.py runserver 8080

1
@StephenRauch, प्रश्न यह नहीं पूछता है कि WHO पोर्ट का उपयोग कर रहा है। सवाल यह है कि कोई त्रुटि बताई जा रही है। यह उस त्रुटि को ठीक करने के तरीके पर एक समाधान है।
फ्रेडी

ओपी पूछ रहा है कि पोर्ट 8000 पर सर्वर को कैसे पुनः आरंभ करें, इसे दूसरे पोर्ट पर चलाने के लिए नहीं
कहे

4

हम इस आदेश का उपयोग नहीं करते {sudo lsof -t -i tcp: 8000 | xargs मार -9} क्योंकि यह सभी टैब बंद कर रहा है ... आपको इसका उपयोग करना चाहिए

ps -ef | ग्रेप पायथन

किल -9 प्रक्रिया_िद

ps -ef | grep python (आईडी के साथ सभी प्रक्रिया दिखाएं)

किल -9 ११६३३ (११६३३ एक प्रक्रिया आईडी है: - / bin / python manage.py runserver)


2

यह मुनीर के जवाब पर एक विस्तार है। मैंने एक बैश स्क्रिप्ट जोड़ी है जो आपके लिए इसे कवर करती है। बस के ./scripts/runserver.shबजाय चलाने के लिए ./manage.py runserverऔर यह ठीक उसी तरह काम करेंगे।

#!/bin/bash

pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")

if [[ -n "$pid" ]]; then
    kill $pid
fi

fuser -k 8000/tcp
./manage.py runserver

2

एक पुरानी पोस्ट में टिप्पणी के लिए क्षमा करें, लेकिन यह लोगों की मदद कर सकता है

इसे अपने टर्मिनल पर टाइप करें

killall -9 python3

यह आपके मशीन पर चलने वाले सभी पायथन 3 को मार देगा और यह आपके सभी पोर्ट को मुक्त कर देगा। Django परियोजना में काम करने के लिए मेरी बहुत मदद करें ।


1

मेरे लिए, ऐसा इसलिए होता है क्योंकि पोस्टमैन में मेरे एपीआई अनुरोध को मेरे ऐप में एक डिबगर ब्रेकपॉइंट द्वारा इंटरसेप्ट किया जा रहा है ... अनुरोध लटका हुआ छोड़ रहा है। यदि मैं अपने ऐप के सर्वर को मारने से पहले पोस्टमैन में अनुरोध को रद्द करता हूं, तो त्रुटि पहले स्थान पर नहीं होती है।

-> तो अन्य कार्यक्रमों में आपके द्वारा किए जा रहे किसी भी खुले अनुरोध को रद्द करने का प्रयास करें।

MacOS पर, मैं sudo lsof -t -i tcp:8000 | xargs kill -9तब उपयोग कर रहा हूं जब मैं इसे हल करने के लिए खुले http अनुरोध को रद्द करना भूल error = That port is already in use.जाता हूं, यह भी मेरा पोस्टमैन ऐप बंद कर देता है, यही कारण है कि मेरा पहला समाधान बेहतर है।


1

उस ctl-c के बाद कमांड के रूप में 'fg' टाइप करें।
कमांड:
एफजी दिखाएगा जो पृष्ठभूमि पर चल रहा है। इसके बाद ctl-c इसे रोक देगा।

एफजी
सीटीएल-सी


0

ps aux | grep का प्रबंधन

ubuntu 3438 127.0.0 2.3 40256 14064 पीटीएस / 0 टी 06:47 0:00 अजगर प्रबंधन थंडरबस्टर

मार-९ ३४३38


2
हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है। कृपया अपने कोड को व्याख्यात्मक टिप्पणियों के साथ भीड़ देने की कोशिश न करें, इससे कोड और स्पष्टीकरण दोनों की पठनीयता कम हो जाती है!
रेने

0

ऐसा लगता है कि IDEs, VSCode, Puppeteer, nodemon, express आदि इस समस्या का कारण बनता है, आपने पृष्ठभूमि में एक प्रक्रिया चलाई या डिबगिंग क्षेत्र को बंद कर दिया [ब्राउज़र, टर्मिनल, आदि] या जो भी, वैसे भी, मैंने इस प्रश्न का उत्तर दिया है। पहले, यहाँ आप इसे लिंक कर रहे हैं

https://stackoverflow.com/a/49797588/2918720


0

अगर आपको मैक में इस समस्या का सामना करना पड़ता है, तो आपको केवल गतिविधि मॉनिटर खोलने और काफी अजगर को मजबूर करने की आवश्यकता है फिर प्रयास करें

यहां छवि विवरण दर्ज करें



0

यदि आप VSC के स्क्रीन टर्मिनल का उपयोग कर रहे हैं, तो त्रुटि इस तथ्य के कारण हो सकती है कि आप पहले से ही किसी अन्य शेल में रनसर कर रहे हैं।

VSC के टर्मिनल के हेडर में + साइन के बाईं ओर ड्रॉपबॉक्स पर क्लिक करें और कुछ अन्य शेल का चयन करें और जांचें कि क्या सर्वर पहले से ही वहां चल रहा है। उस सर्वर से बाहर निकलें और आप एक अन्य सर्वर लॉन्च करने के लिए तैयार हैं।

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