मुझे निम्नलिखित स्क्रिप्ट मिली है:
#!/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( फिर से बनाया गया शेल) द्वारा पुन: प्रयास करें ।