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? SIGHUPBu komut dosyasına nasıl bir sinyal göndermeliyim (olması gerekmez )?
while true; do read; doneSonunda 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+Dvecatişlemden çıkmak için tuşuna basın . İkencatsüreç ön planda olduğunuHUPsinyali üzerinde bir etki değildir. İlecatdeğiştirmeyi tekrar deneyinread(yerleşik bir kabuk).