Django सर्वर को पुनरारंभ करना निम्न त्रुटि प्रदर्शित करता है:
this port is already running....
यह समस्या विशेष रूप से उबंटू और अन्य ऑपरेटिंग सिस्टम पर नहीं होती है। मैं सर्वर को पुनरारंभ करने के लिए पोर्ट को कैसे मुक्त कर सकता हूं?
Django सर्वर को पुनरारंभ करना निम्न त्रुटि प्रदर्शित करता है:
this port is already running....
यह समस्या विशेष रूप से उबंटू और अन्य ऑपरेटिंग सिस्टम पर नहीं होती है। मैं सर्वर को पुनरारंभ करने के लिए पोर्ट को कैसे मुक्त कर सकता हूं?
जवाबों:
एक और अधिक सरल समाधान बस टाइप करें sudo fuser -k 8000/tcp
। यह पोर्ट 8000 से जुड़ी सभी प्रक्रियाओं को मारना चाहिए।
संपादित करें:
ओएसएक्स उपयोगकर्ताओं के लिए आप उपयोग कर सकते हैं sudo lsof -t -i tcp:8000 | xargs kill -9
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 ऐप चलाएं।
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
डिफ़ॉल्ट रूप से, रनसेवर कमांड पोर्ट 8000 पर आंतरिक आईपी पर विकास सर्वर शुरू करता है।
यदि आप सर्वर के पोर्ट को बदलना चाहते हैं, तो इसे कमांड-लाइन तर्क के रूप में पास करें। उदाहरण के लिए, यह कमांड पोर्ट 8080 पर सर्वर शुरू करता है:
python manage.py runserver 8080
हम इस आदेश का उपयोग नहीं करते {sudo lsof -t -i tcp: 8000 | xargs मार -9} क्योंकि यह सभी टैब बंद कर रहा है ... आपको इसका उपयोग करना चाहिए
ps -ef | ग्रेप पायथन
किल -9 प्रक्रिया_िद
ps -ef | grep python (आईडी के साथ सभी प्रक्रिया दिखाएं)
किल -9 ११६३३ (११६३३ एक प्रक्रिया आईडी है: - / bin / python manage.py runserver)
यह मुनीर के जवाब पर एक विस्तार है। मैंने एक बैश स्क्रिप्ट जोड़ी है जो आपके लिए इसे कवर करती है। बस के ./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
मेरे लिए, ऐसा इसलिए होता है क्योंकि पोस्टमैन में मेरे एपीआई अनुरोध को मेरे ऐप में एक डिबगर ब्रेकपॉइंट द्वारा इंटरसेप्ट किया जा रहा है ... अनुरोध लटका हुआ छोड़ रहा है। यदि मैं अपने ऐप के सर्वर को मारने से पहले पोस्टमैन में अनुरोध को रद्द करता हूं, तो त्रुटि पहले स्थान पर नहीं होती है।
-> तो अन्य कार्यक्रमों में आपके द्वारा किए जा रहे किसी भी खुले अनुरोध को रद्द करने का प्रयास करें।
MacOS पर, मैं sudo lsof -t -i tcp:8000 | xargs kill -9
तब उपयोग कर रहा हूं जब मैं इसे हल करने के लिए खुले http अनुरोध को रद्द करना भूल error = That port is already in use.
जाता हूं, यह भी मेरा पोस्टमैन ऐप बंद कर देता है, यही कारण है कि मेरा पहला समाधान बेहतर है।
उस ctl-c के बाद कमांड के रूप में 'fg' टाइप करें।
कमांड:
एफजी दिखाएगा जो पृष्ठभूमि पर चल रहा है। इसके बाद ctl-c इसे रोक देगा।
एफजी
सीटीएल-सी
ps aux | grep का प्रबंधन
ubuntu 3438 127.0.0 2.3 40256 14064 पीटीएस / 0 टी 06:47 0:00 अजगर प्रबंधन थंडरबस्टर
मार-९ ३४३38
ऐसा लगता है कि IDEs, VSCode, Puppeteer, nodemon, express आदि इस समस्या का कारण बनता है, आपने पृष्ठभूमि में एक प्रक्रिया चलाई या डिबगिंग क्षेत्र को बंद कर दिया [ब्राउज़र, टर्मिनल, आदि] या जो भी, वैसे भी, मैंने इस प्रश्न का उत्तर दिया है। पहले, यहाँ आप इसे लिंक कर रहे हैं
अगर आपको मैक में इस समस्या का सामना करना पड़ता है, तो आपको केवल गतिविधि मॉनिटर खोलने और काफी अजगर को मजबूर करने की आवश्यकता है फिर प्रयास करें
यदि आप VSC के स्क्रीन टर्मिनल का उपयोग कर रहे हैं, तो त्रुटि इस तथ्य के कारण हो सकती है कि आप पहले से ही किसी अन्य शेल में रनसर कर रहे हैं।
VSC के टर्मिनल के हेडर में + साइन के बाईं ओर ड्रॉपबॉक्स पर क्लिक करें और कुछ अन्य शेल का चयन करें और जांचें कि क्या सर्वर पहले से ही वहां चल रहा है। उस सर्वर से बाहर निकलें और आप एक अन्य सर्वर लॉन्च करने के लिए तैयार हैं।
sudo lsof -i tcp:8000
फिर दिखाने वाले प्रोसेस आईडी को मार दें।