আমি নিম্নলিখিত স্ক্রিপ্ট পেয়েছি:
#!/bin/bash
echo "We are $$"
trap "echo HUP" SIGHUP
cat # wait indefinitely
আমি যখন প্রেরণ করি SIGHUP(ব্যবহার করে kill -HUP pid) তখন কিছুই হয় না।
আমি যদি স্ক্রিপ্টটি কিছুটা পরিবর্তন করি:
#!/bin/bash
echo "We are $$"
trap "kill -- -$BASHPID" EXIT # add this
trap "echo HUP" SIGHUP
cat # wait indefinitely
... তারপরে স্ক্রিপ্টটি echo HUPজিনিসটি ঠিকঠাকভাবে বেরিয়ে আসে (যখন আমি Ctrl + C টিপবো):
roger@roger-pc:~ $ ./hupper.sh
We are 6233
^CHUP
কি হচ্ছে? SIGHUPএই স্ক্রিপ্টে আমার কীভাবে সংকেত পাঠানো উচিত (এটি আবশ্যকভাবে হওয়ার দরকার নেই )?
while true; do read; doneশেষ পর্যন্ত ব্যবহার করেছি , অন্যথায় পাঠ্য প্রবেশ করানো এটির পাশাপাশি বন্ধ হয়ে যায় এবং আমি এটি Ctrl + C এ ছেড়ে দিতে চাই।
catপ্রক্রিয়া শেষ হলে সংকেত সরবরাহ করা হবে এবং সিগন্যাল হ্যান্ডলার কার্যকর করা হবে । প্রক্রিয়াটি প্রস্থানCtrl+Dকরার জন্য আপনার মূল স্ক্রিপ্টটি টিপুন এবং টিপুনcat। যদিওcatপ্রক্রিয়া ফোরগ্রাউন্ড হয়,HUPসংকেত সে অনুপাতে কাজ করা হয় না।catপ্রতিস্থাপনread(একটি শেল বিল্ট-ইন) দিয়ে আবার চেষ্টা করুন ।