ব্যাশ এবং পাইথনে কীভাবে SIGTERM পাঠাবেন এবং ধরবেন

Byasa Ebam Pa Ithane Kibhabe Sigterm Pathabena Ebam Dharabena



লিনাক্সে, প্রক্রিয়াগুলি সংকেত ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। সংকেতগুলি সফ্টওয়্যার বাধা হিসাবে কাজ করে যা বিভিন্ন ইভেন্ট বা অনুরোধের প্রোগ্রামগুলিকে অবহিত করে। উদাহরণস্বরূপ, যখন একটি প্রোগ্রাম চলছে, আপনি প্রোগ্রাম থেকে প্রস্থান করার জন্য একটি হত্যা সংকেত পাঠাতে পারেন। যে সংকেতটি পাঠানো হয় তা বিভিন্ন ক্রিয়াকে ট্রিগার করতে পারে যেমন একটি মৃত্যুদন্ড বন্ধ করা, প্রোগ্রামটি বন্ধ করা, এক্সিকিউশন পুনরায় শুরু করা ইত্যাদি।

ব্যাশ এবং পাইথনের সাথে কাজ করার সময়, আপনি চলমান প্রক্রিয়াটি নরমভাবে শেষ করতে SIGTERM সংকেত পাঠাতে পারেন। এই পোস্টটি ব্যাশ এবং পাইথনে SIGTERM পাঠানো এবং ধরার বিষয়ে কভার করে।

সাইন টার্ম কি

ইউনিক্স সিস্টেমে তিনটি বিভাগের সংকেত রয়েছে: সিস্টেম, ডিভাইস এবং ব্যবহারকারী-সংজ্ঞায়িত সংকেত। প্রতিটি সংকেত একটি পূর্ণসংখ্যা মান আছে. আপনি সংকেতটির নাম বা এর পূর্ণসংখ্যার মান উল্লেখ করে এটি চালাতে পারেন।







SIGTERM হল একটি সংকেত যার একটি পূর্ণসংখ্যা মানের 15। এটি কার্যকর হয় যখন আপনি একটি চলমান প্রক্রিয়া নরমভাবে শেষ করতে চান। ব্যাশে SIGTERM ব্যবহার করার জন্য নিম্নলিখিত সিনট্যাক্স:



টার্গেট টার্ম মেরে ফেলুন < পিআইডি >

বা

হত্যা - পনের < পিআইডি >

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে উপলব্ধ সমস্ত সংকেত পরীক্ষা করতে পারেন:



হত্যা -l





ব্যাশ এবং পাইথনে কীভাবে SIGTERM পাঠাবেন এবং ধরবেন

আপনি বিভিন্ন ক্ষেত্রে ব্যাশ এবং পাইথনে SIGTERM পাঠাতে এবং ধরতে চাইতে পারেন। আপনি যখন আপনার ব্যাশ বা পাইথন প্রোগ্রামটি চালান, তখন আপনি প্রোগ্রামটি মেরে ফেলার জন্য SIGTERM সংকেত চালাতে পারেন। আপনি কিভাবে Bash এবং Python এ SIGTERM পাঠান এবং ধরুন তা বোঝার জন্য আমাদের কাছে বিভিন্ন উদাহরণ রয়েছে।

1. একটি পাইথন স্ক্রিপ্ট ব্যবহার করা

Python 1.4 এবং সর্বশেষ সংস্করণ ব্যবহার করার সময়, আপনি SIGTERM পাঠাতে এবং ধরতে সিগন্যাল লাইব্রেরি ব্যবহার করতে পারেন। আপনার প্রোগ্রাম কিভাবে বিভিন্ন সংকেত ক্যাপচার এবং প্রতিক্রিয়া করা উচিত তা নির্ধারণ করতে আপনার প্রোগ্রামে লাইব্রেরি আমদানি করুন। সিগন্যাল লাইব্রেরি আপনাকে প্রাপ্ত সিগন্যালের পূর্ণসংখ্যা রিপোর্ট করতে একটি সিগন্যাল হ্যান্ডলার তৈরি করতে দেয়। তারপরে আপনি ক্যাপচার করা সংকেতটি নিবন্ধন করতে পারেন এবং বর্তমান প্রক্রিয়া যেমন এর পিআইডি সম্পর্কে তথ্য পেতে পারেন। একটি উদাহরণ দেওয়া যাক।



আমাদের কাছে একটি পাইথন স্ক্রিপ্ট রয়েছে যা পাঠানো সংকেতের পূর্ণসংখ্যা ধরে। অধিকন্তু, এটি বর্তমান প্রক্রিয়ার পিআইডি ক্যাচ করে।

নিম্নলিখিত চিত্রে, আমরা পাইথন স্ক্রিপ্টটি কার্যকর করি এবং একটি সময় লুপ আছে যা প্রতি কয়েক সেকেন্ডে কার্যকর হয়। অন্য একটি টার্মিনালে, আমরা পাইথন স্ক্রিপ্ট চালানো থেকে যে পিআইডি পাই তা নির্দিষ্ট করে প্রক্রিয়াটি শেষ করার জন্য আমরা SIGTERM সংকেত পাঠাতে পারি:

একবার আমরা SIGTERM সংকেত পাঠালে, আমরা লক্ষ্য করি যে স্ক্রিপ্টটি কার্যকর করা বন্ধ করে দেয়। কারণ এটি সংকেত পূর্ণসংখ্যা ক্যাপচার করে। এই ক্ষেত্রে, আমরা SIGTERM সংকেতের জন্য kill -15 কার্যকর করি। আপনি পূর্ণসংখ্যার মানের পরিবর্তে SIGTERM কীওয়ার্ড ব্যবহার করে SIGTERM কিল সিগন্যালও পাঠাতে পারেন। আমরা এখনও একই ফলাফল পেতে.

আপনি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে আপনার পাইথন কাজ চালাতে পারেন:

python3 < স্ক্রিপ্ট/চাকরি > এবং

প্রথম পদ্ধতির বিপরীতে, যখন আমরা এই বিকল্পটি ব্যবহার করে SIGTERM পাঠাই, তখন আমরা দেখতে পাব যে চাকরির আইডি প্রিন্ট আউট হয়ে গেছে যখন কাজটি সম্পাদন করা শুরু হয়। আমরা এটি মেরে ফেলার পরে, আমরা 'সম্পন্ন' স্ট্যাটাস পাই। SIGTERM এর নাম বা পূর্ণসংখ্যা উল্লেখ করে পাঠানো যেতে পারে।

2. একটি ব্যাশ স্ক্রিপ্ট ব্যবহার করা

ব্যাশ স্ক্রিপ্ট চালানোর সময় আপনি একটি সংকেত ধরতে 'ট্র্যাপ' কমান্ড ব্যবহার করতে পারেন। এই উদাহরণে, আমরা SIGTERM সংকেত ধরতে 'ট্র্যাপ' কমান্ড যোগ করেছি। কোনো SIGTERM সংকেত পাঠানো না হলে স্ক্রিপ্টটি 'তারিখ' কমান্ডটি হাজার বার চালানোর জন্য একটি 'ফর' লুপ।

ব্যাশ স্ক্রিপ্ট চালানোর সময়, আপনি টিপে SIGTERM সংকেত পাঠাতে পারেন Ctrl + Z কীবোর্ড কী। 'ট্র্যাপ' কমান্ডটি প্রেরিত সংকেত ক্যাপচার করে এবং 'ফর' লুপটি কার্যকর করা বন্ধ করবে। আপনি একটি আউটপুট পাবেন যা নিশ্চিত করে যে চলমান কাজটি একটি SIGTERM সংকেত পেয়েছে এবং বন্ধ হয়ে গেছে।

এভাবেই আপনি ব্যাশে SIGTERM পাঠাবেন এবং ধরবেন।

উপসংহার

একটি কাজ বা প্রোগ্রাম নির্বাহ করার সময় আপনি বিভিন্ন লক্ষ্য অর্জনের জন্য বিভিন্ন সংকেত পাঠাতে পারেন। SIGTERM একটি প্রোগ্রাম নরমভাবে বন্ধ করতে পাঠানো হয়। পাইথনের জন্য, একটি সংকেত ধরার জন্য আপনার একটি সিগন্যাল হ্যান্ডলারের প্রয়োজন, এবং আপনি 'হত্যা' কমান্ড ব্যবহার করে SIGTERM পাঠাতে পারেন। আপনি SIGTERM সংকেত ক্যাপচার এবং পাঠাতে Bash-এ 'ট্র্যাপ' কমান্ড এবং কীবোর্ড কী ব্যবহার করতে পারেন। এই পোস্টটি বিস্তারিতভাবে কীভাবে অর্জন করা যায় তার বিভিন্ন উদাহরণ উপস্থাপন করেছে।