[python] मैं एक पायथन सरल एचटीटीपी सर्वर कैसे बंद करूँ?


Answers

अगर आपने सर्वर शुरू किया है

python -m SimpleHTTPServer 8888 

तो आप सर्वर के नीचे ctrl + c दबा सकते हैं।

लेकिन अगर आपने सर्वर शुरू किया है

python -m SimpleHTTPServer 8888 &

या

python -m SimpleHTTPServer 8888 & disown

प्रक्रिया को मारने के लिए आपको सबसे पहले सूची देखना है,

चलाने के आदेश

ps

या

ps aux | less

यह आपको इस तरह की कुछ चल रही प्रक्रिया दिखाएगा ..

PID TTY          TIME CMD
7247 pts/3     00:00:00 python
7360 pts/3     00:00:00 ps
23606 pts/3    00:00:00 bash

आप यहां से पीआईडी ​​प्राप्त कर सकते हैं। और इस आदेश को चलाकर उस प्रक्रिया को मार डालो ..

kill -9 7247

यहां 7247 पायथन आईडी है।

कुछ कारणों से यदि पोर्ट अभी भी खुला है तो आप इस कमांड के साथ बंदरगाह बंद कर सकते हैं

fuser -k 8888/tcp

यहां 8888 पायथन द्वारा खोला गया टीसीपी पोर्ट है।

आशा है कि अब यह स्पष्ट है।

Question

तो मैं डी 3 सीखने की कोशिश कर रहा हूं, और wiki ने सुझाव दिया

स्थानीय रूप से उदाहरण देखने के लिए, आपके पास एक स्थानीय वेब सर्वर होना चाहिए। कोई भी वेब सर्वर काम करेगा; उदाहरण के लिए आप पाइथन के अंतर्निर्मित सर्वर चला सकते हैं:

python -m SimpleHTTPServer 8888 &

बढ़िया ... केवल अब मेरे पास एक सर्वर चल रहा है ... लेकिन किसी बिंदु पर मुझे लगता है कि मुझे शायद इसे फिर से बंद करना चाहिए।

क्या kill <pid> का उपयोग करने से इसे बंद करने का एक बेहतर तरीका है? ऐसा लगता है कि एक छोटी सी नौकरी के लिए एक बड़ा हथौड़ा है।

(मैं मैक ओएस 10.6.8 (हिम तेंदुए) चला रहा हूँ)

एफडब्ल्यूआईडब्ल्यू: ctrl+c ट्रेसबैक की लगभग 10 लाइनें देता है, जो बाधित होने के बारे में शिकायत करता है।

kill -3 <pid> एक अलग विंडो में एक खोजक चेतावनी देता है 'पायथन अप्रत्याशित रूप से छोड़ दिया'।

डिफ़ॉल्ट kill <pid> और kill -15 <pid> अपेक्षाकृत साफ (और सरल) हैं।




बाहर निकलता है एक शटडाउन है, लेकिन यह एक और धागे से शुरू किया जाना चाहिए।

यह समाधान मेरे लिए काम करता है: https://.com/a/22533929/573216




MYPORT=8888; 
kill -9 `ps -ef |grep SimpleHTTPServer |grep $MYPORT |awk '{print $2}'`

बस इतना ही !!

कमांड लाइन समझाएं:

  • ps -ef : सभी प्रक्रियाओं को सूचीबद्ध करें।

  • grep SimpleHTTPServer : फ़िल्टर प्रक्रिया जो "SimpleHTTPServer" से संबंधित है

  • grep $MYPORT : फ़िल्टर फिर से प्रक्रिया "SimpleHTTPServer" से संबंधित है जहां पोर्ट आयात है (.ie: MYPORT = 8888)

  • awk '{print $2}' : परिणाम का दूसरा कॉलम प्रिंट करें जो पीआईडी ​​(प्रक्रिया आईडी) है

  • kill -9 <PID> : उपयुक्त पीआईडी ​​के साथ फोर्स किल प्रक्रिया।






Links