Aşağıdaki senaryo var:
#!/bin/bash
echo "We are $$"
trap "echo HUP" SIGHUP
cat # wait indefinitely
Gönderirken SIGHUP
(kullanarak kill -HUP pid
) hiçbir şey olmuyor.
Senaryoyu biraz değiştirirsem:
#!/bin/bash
echo "We are $$"
trap "kill -- -$BASHPID" EXIT # add this
trap "echo HUP" SIGHUP
cat # wait indefinitely
... sonra komut dosyası echo HUP
çıkar çıkmaz doğru yapar (Ctrl + C tuşlarına bastığımda):
roger@roger-pc:~ $ ./hupper.sh
We are 6233
^CHUP
Neler oluyor? SIGHUP
Bu komut dosyasına nasıl bir sinyal göndermeliyim (olması gerekmez )?
while true; do read; done
Sonunda kullandım , aksi takdirde metin girmek de çıkmasına neden olur ve Ctrl + C'de çıkmasını istiyorum.
cat
İşlem tamamlandığında sinyal iletilir ve sinyal işleyici yürütülür . Orijinal komut dosyanızı deneyinCtrl+D
vecat
işlemden çıkmak için tuşuna basın . İkencat
süreç ön planda olduğunuHUP
sinyali üzerinde bir etki değildir. İlecat
değiştirmeyi tekrar deneyinread
(yerleşik bir kabuk).