আমি আইডিএল-তে একটি টেক্সট ফাইল টোকনাইজ করতে একটি প্রোগ্রাম লিখেছিলাম এবং এটি টোকিনাইজায় শুরু হয় 349 পাঠ্য ফাইল! আমি কীভাবে এটি বন্ধ করতে পারি? আমি কীভাবে চলমান পাইথন প্রোগ্রামটি বন্ধ করতে পারি?
আমি আইডিএল-তে একটি টেক্সট ফাইল টোকনাইজ করতে একটি প্রোগ্রাম লিখেছিলাম এবং এটি টোকিনাইজায় শুরু হয় 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+ + Zথেকে সাসপেন্ড যাই হোক না কেন প্রক্রিয়া বর্তমানে কনসোল নিয়ন্ত্রণ করছে। একবার আপনি শেল প্রম্পট ফিরে পেলে, আপনি jobs
স্থগিত কাজগুলির তালিকা করতে ব্যবহার করতে পারেন এবং আপনি প্রথম স্থগিত কাজটি দিয়ে হত্যা করতে পারেন kill %1
। (আপনি যদি এটি আবার চলমান শুরু করতে চান, আপনি অগ্রভাগে ব্যবহার করে কাজটি চালিয়ে যেতে পারেন fg %1
; আরও তথ্যের জন্য চাকরীর নিয়ন্ত্রণে আপনার শেলের ম্যানুয়ালটি পড়ুন))
বিকল্প হিসাবে, ইউনিক্স বা ইউনিক্স-জাতীয় পরিবেশে আপনি পাইথন প্রক্রিয়াটির পিআইডি (প্রক্রিয়া শনাক্তকারী) খুঁজে পেতে পারেন এবং পিআইডি দ্বারা এটি হত্যা করতে পারেন। ps aux | grep python
কোন পাইথন প্রক্রিয়া চলছে তা সন্ধান করার মতো কিছু ব্যবহার করুন এবং তারপরে kill <pid>
একটি SIGTERM
সংকেত প্রেরণের জন্য ব্যবহার করুন ।
kill
ইউনিক্স কমান্ড পাঠায় SIGTERM
ডিফল্টরূপে, এবং একটি পাইথন প্রোগ্রামের জন্য একটি সংকেত হ্যান্ডলার ইনস্টল করতে পারেন SIGTERM
ব্যবহার signal
মডিউল। তত্ত্ব অনুসারে, কোনও সিগন্যাল হ্যান্ডলারের SIGTERM
প্রক্রিয়াটি নিখুঁতভাবে বন্ধ করে দেওয়া উচিত। তবে কখনও কখনও যদি প্রক্রিয়াটি আটকে থাকে (উদাহরণস্বরূপ, একটি নিরবচ্ছিন্ন আইও ঘুমের রাজ্যে অবরুদ্ধ), একটি 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-Break এটি 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
সিটিআরএল + জেড এটি করা উচিত, যদি আপনি পাইথন শেলটিতে পড়ে থাকেন। মনে রাখবেন যে স্ক্রিপ্টের উদাহরণগুলি পটভূমিতে চলতে পারে, সুতরাং লিনাক্সের অধীনে আপনাকে সংশ্লিষ্ট প্রক্রিয়াটি হারাতে হবে।
jobs
অথবা ps
তারপর kill 8923754
বা যাই হোক না কেন jobid / প্রক্রিয়া ID আপনাকে হত্যা করতে প্রয়োজন
Control+ + Dউইন্ডোজ 10. এছাড়াও আমার জন্য কাজ করে, নির্বাণ exit()
শেষ এছাড়াও কাজ করে যায়।
প্রস্থান () আপনি জুপিটার নোটবুকে থাকলে কার্নেলকে হত্যা করবে তাই এটি ভাল ধারণা নয়। raise
কমান্ড প্রোগ্রাম বন্ধ করবে।
আপনার প্রোগ্রামটি বন্ধ করতে, কেবল CTRL+ টিপুনD
বা exit()
।
প্রেস Ctrl+ + Alt+ + Deleteএবং টাস্ক ম্যানেজার পপ আপ করবে। পাইথন কমান্ডটি চলমান সন্ধান করুন, এটিতে ডান ক্লিক করুন এবং স্টপ বা কিল ক্লিক করুন।
ctrl+c
এটি হত্যা করা উচিত। বিকল্পভাবে,kill -9
এটি