SIGSTOPএবং SIGKILLদুটি সিগন্যাল যা কোনও প্রক্রিয়া দ্বারা ধরা ও পরিচালনা করা যায় না। SIGTSTPভালো হয় SIGSTOPব্যতীত এটি করতে কট অ্যান্ড পরিচালনা করা।
SIGSTOPএবং SIGTSTPসংকেত তার গানগুলি একটি প্রক্রিয়া বন্ধ জন্য প্রস্তুত SIGCONT। আপনি যখন সেই প্রক্রিয়াটিকে প্রেরণ করেন, প্রক্রিয়াটি SIGTERMচলছে না এবং তাই এটি প্রস্থান করার জন্য কোড চালাতে পারে না।
(এছাড়াও রয়েছে SIGTTINএবং SIGTTOUএটি টিটিওয়াই স্তর দ্বারা উত্পন্ন সিগন্যাল যখন একটি পটভূমি কাজ টার্মিনালে পড়তে বা লিখতে চেষ্টা করে They তারা ধরা পড়তে পারে তবে অন্যথায় প্রক্রিয়াটি স্থগিত করে দেয়) ঠিক তেমনই SIGTSTP। তবে আমি এখন যাচ্ছি এই উত্তরটির অবশিষ্টাংশের জন্য এই দুজনকে উপেক্ষা করুন))
আপনার CtrlZপ্রক্রিয়াটি একটি প্রেরণ করে SIGTSTPযা কোনওভাবেই বিশেষভাবে পরিচালিত হয় না বলে মনে হয় rsyslogd, তাই এটি প্রক্রিয়াটি স্থগিত SIGCONTবা স্থগিত করে SIGKILL।
সমাধানটি SIGCONTআপনার পরে প্রেরণ করা SIGTERMযাতে প্রক্রিয়াটি সংকেতটি গ্রহণ করতে ও পরিচালনা করতে পারে।
উদাহরণ:
sleep 999 &
# Assume we got PID 456 for this process
kill -TSTP 456 # Suspend the process (nicely)
kill -TERM 456 # Terminate the process (nicely). Nothing happens
kill -CONT 456 # Continue the process so it can exit cleanly
জিএনইউ সি লাইব্রেরির জন্য ডকুমেন্টেশন এটি বেশ ভালভাবে ব্যাখ্যা করেছে, আমার মনে হয় (আমার হাইলাইট করা):
কোনও প্রক্রিয়া বন্ধ হওয়ার পরে,SIGKILL সংকেত এবং (স্পষ্টতই) SIGCONTসংকেত ব্যতীত এটি অবিরত না হওয়া পর্যন্ত আর কোনও সংকেত সরবরাহ করা যাবে না । সংকেতগুলি মুলতুবি হিসাবে চিহ্নিত হয়েছে, তবে প্রক্রিয়াটি অব্যাহত না হওয়া পর্যন্ত বিতরণ করা হয় না। সংকেত সবসময় প্রক্রিয়ার পরিসমাপ্তি ঘটায় এবং অবরুদ্ধ করতে পারা যাবে ঘাঁটা বা উপেক্ষা করেছেন। আপনি উপেক্ষা করতে পারেন , তবে প্রক্রিয়াটি বন্ধ করা থাকলে সর্বদা প্রক্রিয়া চালিয়ে যাওয়ার কারণ হয়। কোনও প্রক্রিয়াতে সংকেত প্রেরণের ফলে সেই প্রক্রিয়াটির জন্য কোনও মুলতুবি স্টপ সিগন্যালগুলি বাতিল করা হয়। তেমনি, কোনও প্রক্রিয়াটির জন্য কোনও মুলতুবি সংকেত বাতিল করা হয় যখন এটি স্টপ সিগন্যাল পায়SIGKILLSIGCONTSIGCONTSIGCONT
kill -15আপনি ইতিমধ্যে প্রেরণ করেছিলেন তা পরিচালনা করেছে "।