আমি এটিকে উত্তর হিসাবে পোস্ট করব যাতে এটির কোনও সমস্যা রয়েছে যদি এটির সমস্যাটি দেখা দেয়।
0 এর প্রস্থান স্থিতিকরণ মানে একটি সফল প্রোগ্রাম থেকে স্বাভাবিক প্রস্থান। একটি বহির্গমন প্রোগ্রাম তার প্রস্থান স্থিতি হিসাবে 0 এবং 255 এর মধ্যে যে কোনও পূর্ণসংখ্যা চয়ন করতে পারে। প্রচলিতভাবে, প্রোগ্রামগুলি ছোট মান ব্যবহার করে। 126 এবং তার বেশি মানগুলি শেল দ্বারা বিশেষ অবস্থার প্রতিবেদন করার জন্য ব্যবহৃত হয়, সুতরাং এগুলি এড়ানো ভাল।
সি এপিআই স্তরে, প্রোগ্রামগুলি একটি 16-বিট স্থিতি প্রতিবেদন করে - যা প্রোগ্রামের প্রস্থান স্থিতি এবং এটি মেরে ফেলা সিগন্যাল উভয়ই এনকোড করে।
শেলের মধ্যে, একটি কমান্ডের প্রস্থান স্থিতি (সঞ্চিত $?
) প্রোগ্রামের আসল প্রস্থান স্থিতি এবং সংকেতের মানকে সংযুক্ত করে: যদি কোনও প্রোগ্রাম একটি সিগন্যাল দ্বারা নিহত হয়, $?
তবে 128 এর চেয়ে বেশি মানতে সেট করা হয় (বেশিরভাগ শেল সহ, এই মানটি হয়) 128 প্লাস সিগন্যাল নম্বর; এটিটি কেএস 256 + সিগন্যাল নম্বর ব্যবহার করে এবং যশ 384 + সিগন্যাল নম্বর ব্যবহার করে, যা অস্পষ্টতা এড়ায়, তবে অন্যান্য শেলগুলি মামলা অনুসরণ করে না)।
বিশেষত, যদি $?
0 হয় তবে আপনার প্রোগ্রামটি স্বাভাবিকভাবেই প্রস্থান করা হবে।
দ্রষ্টব্য যে এটিতে এমন একটি প্রক্রিয়ার ক্ষেত্রে অন্তর্ভুক্ত রয়েছে যা SIGTERM গ্রহণ করে তবে এর জন্য একটি সিগন্যাল হ্যান্ডলার রয়েছে এবং অবশেষে সাধারণত প্রস্থান হয় (সম্ভবত সাইনটারএম সিগন্যালের অপ্রত্যক্ষ পরিণতি হিসাবে, সম্ভবত না)।
আপনার শিরোনামে প্রশ্নের উত্তর দেওয়ার জন্য, সিস্টেমের মাধ্যমে স্বাক্ষরটি কখনই স্বয়ংক্রিয়ভাবে প্রেরণ করা হয় না SIG কয়েকটি সিগন্যাল রয়েছে যেগুলি স্বয়ংক্রিয়ভাবে সিগআপের মতো প্রেরণ করা হয় যখন টার্মিনালটি চলে যায়, সিগসাইজিভি / সিগবস / সিগিল যখন কোনও প্রক্রিয়া এমন কাজ করে যা না করা উচিত, সাইনপাইপ যখন এটি কোনও ভাঙা পাইপ / সকেট ইত্যাদিতে লেখেন ইত্যাদি there কয়েক সংকেত যে একটি টার্মিনাল একটি গুরুত্বপূর্ণ সংবাদ কারণে পাঠানো হয়, প্রধানত জন্য SIGINT Ctrl+ + C, জন্য SIGQUIT Ctrl+ + \এবং SIGTSTP জন্য Ctrl+ + Z, কিন্তু SIGTERM ঐ এক নয়। যদি কোনও প্রক্রিয়া SIGTERM গ্রহণ করে তবে অন্য কিছু প্রক্রিয়া সেই সংকেত পাঠিয়েছে।
Ly মোটামুটি কথা বলছি