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
সংকেত ব্যতীত এটি অবিরত না হওয়া পর্যন্ত আর কোনও সংকেত সরবরাহ করা যাবে না । সংকেতগুলি মুলতুবি হিসাবে চিহ্নিত হয়েছে, তবে প্রক্রিয়াটি অব্যাহত না হওয়া পর্যন্ত বিতরণ করা হয় না। সংকেত সবসময় প্রক্রিয়ার পরিসমাপ্তি ঘটায় এবং অবরুদ্ধ করতে পারা যাবে ঘাঁটা বা উপেক্ষা করেছেন। আপনি উপেক্ষা করতে পারেন , তবে প্রক্রিয়াটি বন্ধ করা থাকলে সর্বদা প্রক্রিয়া চালিয়ে যাওয়ার কারণ হয়। কোনও প্রক্রিয়াতে সংকেত প্রেরণের ফলে সেই প্রক্রিয়াটির জন্য কোনও মুলতুবি স্টপ সিগন্যালগুলি বাতিল করা হয়। তেমনি, কোনও প্রক্রিয়াটির জন্য কোনও মুলতুবি সংকেত বাতিল করা হয় যখন এটি স্টপ সিগন্যাল পায়SIGKILL
SIGCONT
SIGCONT
SIGCONT
kill -15
আপনি ইতিমধ্যে প্রেরণ করেছিলেন তা পরিচালনা করেছে "।