আমার একটি লাইভ সিডি রয়েছে যা লিনাক্সে বুট হয় এবং একটি ছোট বাশ স্ক্রিপ্ট চালায়। স্ক্রিপ্টটি সন্ধান করে এবং একটি দ্বিতীয় প্রোগ্রাম চালায় (যা সাধারণত সংকলিত সি ++ বাইনারি হয়)।
আপনি Ctrl+ টিপে দ্বিতীয় প্রোগ্রামটি বাতিল করতে সক্ষম হবেন বলে মনে করা হচ্ছে C। যা হওয়া উচিত তা হ'ল দ্বিতীয় প্রোগ্রামটি থেমে আছে এবং বাশ স্ক্রিপ্টটি ক্লিনআপ চালিয়ে যাচ্ছে। কি আসলে ঘটবে উভয় প্রধান আবেদন এবং ব্যাশ স্ক্রিপ্ট অবসান ঘটবে। যা কোন সমস্যা।
সুতরাং আমি trap
বিল্টিনকে ব্যাগকে SIGINT এড়ানোর জন্য বলার জন্য ব্যবহার করেছি । এবং এখন Ctrl+ Cসি ++ অ্যাপ্লিকেশনটি সমাপ্ত করে, তবে বাশ এটি চালিয়ে যায়। গ্রেট।
ওহ হ্যাঁ ... কখনও কখনও "দ্বিতীয় অ্যাপ্লিকেশন" হ'ল আরেকটি বাশ স্ক্রিপ্ট। আর এ যে মামলা, Ctrl+ + Cএখন নেই কিছুই সবটা ।
পরিষ্কারভাবে এই জিনিসগুলি কীভাবে কাজ করে তা সম্পর্কে আমার বোঝা ভুল ... ব্যবহারকারী Ctrl+ চাপলে কোন প্রক্রিয়াটি SIGINT পায় আমি কীভাবে তা নিয়ন্ত্রণ করব C? আমি এই সংকেতটি কেবল একটি নির্দিষ্ট প্রক্রিয়াতে পরিচালনা করতে চাই ।
set -m
।setsid
আপনি যতবার বাচ্চা চালান প্রতিবার ব্যবহার করার চেয়ে এটি কিছুটা পরিষ্কার এবং সহজ ।