Есть простенький скрипт
#!/bin/bash
trap 'echo Catched' TERM
echo $$
#cat /dev/zero |
while true ; do
sleep 1
done
Все работает — после запуска скрипта посылаю ему сигнал TERM
kill -TERM [PID]
trap ловит этот сигнал и выводит «Catched».
Однако если раскомментировать строку
cat /dev/zero |
то trap уже ничего не ловит и не завершает скрипт, т.е. абсолютно ничего не происходит.
Собственно вопрос — возможно ли внутри такого bash скрипта словить сигнал? Если да — то как?
UPD. Решение#!/bin/bash
trap 'echo Catched' TERM
echo $$
cat /dev/zero |
while true ; do
sleep 1
done &
while : ; do
wait $!
done