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