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




d3.js simplehttpserver (7)

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> : उपयुक्त पीआईडी ​​के साथ फोर्स किल प्रक्रिया।

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

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

python -m SimpleHTTPServer 8888 &

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

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

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

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

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

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


यह ओवरकिल जैसा लगता है लेकिन आप supervisor का उपयोग अपने सरल हेट्ससेवर को शुरू करने और रोकने के लिए कर सकते हैं, और इसे पूरी तरह से सेवा के रूप में प्रबंधित कर सकते हैं।

या बस इसे अग्रभूमि में चलाएं जैसा कि सुझाव दिया गया है और नियंत्रण सी के साथ इसे मार डालो


या आप सिर्फ kill %1 सकते हैं, जो पृष्ठभूमि में रखी गई पहली नौकरी को मार देगा


आप बस प्रक्रियाओं के लिए सिग्नल भेज रहे हैं। kill उन संकेतों को भेजने के लिए एक आदेश है।

कुंजीपटल कमांड Ctrl + C ( + C ) एक सिगिनट भेजता है, kill -9 सिगकिल भेजता है, और kill -15 एक सिगरेट भेजता है।

आप इसे समाप्त करने के लिए अपने सर्वर पर क्या सिग्नल भेजना चाहते हैं?


Ctrl + c को एक बार मारना (ट्रेसबैक के लिए प्रतीक्षा करें), फिर ctrl + c को मारने से मेरे लिए चाल हो गई :)


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

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


पायथन 2.5 और नए के लिए एक विशिष्ट वाक्यविन्यास है:

[on_true] if [cond] else [on_false]

पुराने पायथन में एक टर्नरी ऑपरेटर लागू नहीं किया जाता है लेकिन इसे अनुकरण करना संभव है।

cond and on_true or on_false

हालांकि, एक संभावित समस्या है, जो यदि on_true मूल्यांकन करता है और on_true मूल्यांकन False तो on_false की बजाय वापस आ जाता है। यदि आप इस व्यवहार को चाहते हैं तो विधि ठीक है, अन्यथा इसका उपयोग करें:

{True: on_true, False: on_false}[cond is True] # is True, not == True

जिसे द्वारा लिपटा जा सकता है:

def q(cond, on_true, on_false)
    return {True: on_true, False: on_false}[cond is True]

और इस तरह इस्तेमाल किया:

q(cond, on_true, on_false)

यह सभी पायथन संस्करणों के साथ संगत है।





python d3.js simplehttpserver