मैंने IDLE में टेक्स्ट फ़ाइलों को टोकन करने के लिए एक कार्यक्रम लिखा था और यह tokeniza 349 टेक्स्ट फ़ाइलों को शुरू करता है! हम इसे कैसे रोक सकते हैं? मैं चल रहे पायथन कार्यक्रम को कैसे रोक सकता हूं?
मैंने IDLE में टेक्स्ट फ़ाइलों को टोकन करने के लिए एक कार्यक्रम लिखा था और यह tokeniza 349 टेक्स्ट फ़ाइलों को शुरू करता है! हम इसे कैसे रोक सकते हैं? मैं चल रहे पायथन कार्यक्रम को कैसे रोक सकता हूं?
जवाबों:
अपने कार्यक्रम को रोकने के लिए, बस Control + दबाएं C।
^Cटर्मिनल में दिखा और सिस्टम मॉनिटर ने दिखाया कि अजगर अभी भी सीपीयू का बहुत अधिक उपयोग कर रहा है ...
Ctrl + Z(कम से कम लिनक्स पर) दबाएँ । फिर, यदि आप इसे मारना चाहते हैं, तो kill %nदबाएं जहां "एन" वह संख्या है जिसे आपने दबाए जाने पर "स्टॉप्ड" के बगल में मिला है Ctrl + Z। यदि आप इसे फिर से शुरू करना चाहते हैं, तो दौड़ें fg।
यदि आप exit()अपने कोड में फ़ंक्शन का उपयोग करते हैं तो आप यह भी कर सकते हैं । अधिक आदर्श रूप से, आप कर सकते हैं sys.exit()। sys.exit()जो हो सकता है अजगर समाप्त भले ही आप के माध्यम से समानांतर में बातें चल रहे हैं multiprocessingपैकेज।
नोट: उपयोग करने के लिए sys.exit(), आपको इसे आयात करना होगा:import sys
sys.exit(1)प्रक्रिया बंद नहीं होती है। मेरे पास मूल रूप से कई धागे हैं और उनमें से प्रत्येक बाहरी प्रक्रियाओं पर शुरू होता है Popen। मुझे पायथन प्रक्रिया द्वारा बनाई गई सभी उप-प्रक्रियाओं और साथ ही पायथन प्रक्रिया को मारने के लिए एक परमाणु विकल्प की आवश्यकता है। अब तक नहीं मिला।
यदि आपका प्रोग्राम एक संवादात्मक कंसोल पर चल रहा है, तो दबाने CTRL+ से मुख्य धागे पर Cएक KeyboardInterruptअपवाद बढ़ जाएगा।
यदि आपका पायथन प्रोग्राम इसे नहीं पकड़ता है, तो KeyboardInterruptपायथन के बाहर निकलने का कारण होगा। हालांकि, एक except KeyboardInterrupt:ब्लॉक, या नंगे जैसा कुछ except:, इस तंत्र को वास्तव में स्क्रिप्ट को चलने से रोक देगा।
कभी-कभी अगर KeyboardInterruptकाम नहीं कर रहा है तो आप SIGBREAKइसके बजाय एक संकेत भेज सकते हैं ; विंडोज पर, CTRL+ Pause/Breakएक दुभाषिया KeyboardInterruptअपवाद पैदा किए बिना दुभाषिया द्वारा नियंत्रित किया जा सकता है।
हालांकि, ये तंत्र मुख्य रूप से केवल तभी काम करते हैं जब पायथन दुभाषिया चल रहा है और ऑपरेटिंग सिस्टम घटनाओं का जवाब दे रहा है। यदि पायथन दुभाषिया किसी कारण से प्रतिक्रिया नहीं दे रहा है, तो सबसे प्रभावी तरीका है कि पूरे ऑपरेटिंग सिस्टम की प्रक्रिया को समाप्त करना जो दुभाषिया चल रहा है। इसके लिए तंत्र ऑपरेटिंग सिस्टम द्वारा भिन्न होता है।
यूनिक्स-शैली के शेल वातावरण में, आप कंसोल को नियंत्रित करने वाली जो भी प्रक्रिया है, उसे निलंबित करने के लिए CTRL+ दबा सकते हैं । एक बार जब आपको शेल प्रॉम्प्ट वापस मिल जाता है, तो आप निलंबित नौकरियों को सूचीबद्ध करने के लिए उपयोग कर सकते हैं , और आप पहले निलंबित नौकरी को मार सकते हैं । (यदि आप इसे फिर से चालू करना चाहते हैं, तो आप उपयोग करके अग्रभूमि में काम जारी रख सकते हैं, अधिक जानकारी के लिए नौकरी नियंत्रण पर अपने शेल मैनुअल को पढ़ें।)Zjobskill %1fg %1
वैकल्पिक रूप से, यूनिक्स या यूनिक्स जैसे वातावरण में, आप पायथन प्रक्रिया के पीआईडी (प्रक्रिया पहचानकर्ता) को पा सकते हैं और पीआईडी द्वारा इसे मार सकते हैं। कुछ ps aux | grep pythonखोजने के लिए उपयोग करें जैसे कि पायथन प्रक्रियाएं चल रही हैं, और फिर संकेत kill <pid>भेजने के लिए उपयोग करें SIGTERM।
killयूनिक्स पर आदेश भेजता है SIGTERMडिफ़ॉल्ट रूप से, और एक अजगर कार्यक्रम के लिए एक संकेत हैंडलर स्थापित कर सकते हैं SIGTERMका उपयोग कर signalमॉड्यूल। सिद्धांत रूप में, किसी भी सिग्नल हैंडलर के लिए SIGTERMप्रक्रिया को शालीनतापूर्वक बंद करना चाहिए। लेकिन कभी-कभी अगर प्रक्रिया अटक जाती है (उदाहरण के लिए, एक अबाधित IO नींद की स्थिति में अवरुद्ध), तो SIGTERMसिग्नल का कोई प्रभाव नहीं पड़ता है क्योंकि प्रक्रिया भी इसे संभालने के लिए जाग नहीं सकती है।
संकेतों को प्रतिसाद न देने वाली प्रक्रिया को जबरन मारने के लिए, आपको SIGKILLसंकेत भेजने की आवश्यकता होती है , कभी-कभी इसे संदर्भित किया जाता है kill -9क्योंकि स्थिर 9का संख्यात्मक मान है SIGKILL। कमांड लाइन से, आप एक भेजने और तुरंत चलने वाली प्रक्रिया को रोकने के लिए kill -KILL <pid>(या kill -9 <pid>संक्षेप में) का उपयोग कर सकते हैं SIGKILL।
विंडोज पर, आपके पास प्रक्रिया संकेतों की यूनिक्स प्रणाली नहीं है, लेकिन आप TerminateProcessफ़ंक्शन का उपयोग करके किसी चल रही प्रक्रिया को जबरन समाप्त कर सकते हैं । पारस्परिक रूप से, ऐसा करने का सबसे आसान तरीका टास्क मैनेजर खोलना है, उस python.exeप्रक्रिया को ढूंढें जो आपके प्रोग्राम से मेल खाती है, और "एंड प्रोसेस" बटन पर क्लिक करें। आप taskkillसमान उद्देश्यों के लिए कमांड का उपयोग भी कर सकते हैं।
Ctrl + C।exit(), आप इसे कर सकते हैं।pkill -f name-of-the-python-script।python script.py&
Ctrl -C यह Ctrl-C से अधिक शक्तिशाली है
किसी रनिंग प्रोग्राम को रोकने के लिए, Ctrl+ का उपयोग करेंC लिए, प्रक्रिया को समाप्त करने के का ।
अजगर में प्रोग्रामेटिक रूप से इसे संभालने के लिए, sysमॉड्यूल को आयात करें और sys.exit()जहां आप प्रोग्राम को समाप्त करना चाहते हैं , उसका उपयोग करें ।
import sys
sys.exit()
कीबोर्ड का उपयोग करके एक अजगर स्क्रिप्ट को रोकने के लिए: Ctrl+C
कोड का उपयोग करके इसे रोकने के लिए (यह मेरे लिए पायथन 3 पर काम कर चुका है):
import os
os._exit(0)
आप भी उपयोग कर सकते हैं:
import sys
sys.exit()
या:
exit()
या:
raise SystemExit
Ctrl + Z इसे करना चाहिए, यदि आप अजगर शेल में पकड़े गए हैं। ध्यान रखें कि स्क्रिप्ट के उदाहरण पृष्ठभूमि में चलते रह सकते हैं, इसलिए लाइनक्स के तहत आपको संबंधित प्रक्रिया को मारना होगा।
jobsया psफिर kill 8923754या जो भी jobid / प्रक्रिया आईडी आपको मारने की आवश्यकता है
Control+ Dविंडोज 10 पर भी मेरे लिए काम करता है, डाल exit()अंत भी काम करता है पर।
अपने कार्यक्रम को रोकने के लिए, बस CTRL+ दबाएंD
या exit()।
प्रेस Ctrl+ Alt+ Deleteऔर कार्य प्रबंधक पॉप अप होगा। पायथन कमांड को चलाएं, उस पर राइट क्लिक करें और स्टॉप या किल पर क्लिक करें।
ctrl+cइसे मार देना चाहिए। वैकल्पिक रूप से,kill -9यह