আমি নিম্নলিখিত স্ক্রিপ্ট পেয়েছি:
#!/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
(একটি শেল বিল্ট-ইন) দিয়ে আবার চেষ্টা করুন ।