Есть скрипт, в нём устанавливаю свои обработчики сигналов, в частности сигнал Ctrl+z отправки в фон.
trap 'fynk ; kill -TSTP $$' SIGTSTP
В функции fynk возвращаю сигналы обратно в систему, командой:
Как видно после выполнения функции fynk и в результате возврата сигнала в систему, выполняется команда:
которая опять посылает сигнал отправки в фон нашему скрипту (без этой команды после отправки в фон командная строка не возвращается).
В фон скрипт отправляется отлицно и после командная строка работает нормально.
Возвращается из фона скрипт то же нормально. Естественно после возврата из фона я опять устанавливаю свои обработчики сигналов.
Второй раз скрипт уже не отправляется в фон.
Почему не могу понять, ведь обработчики сигналов я опять установил свои.
Добавлено через 28 минут
Например вот такой скрипт во второй раз в фон не отправляется:
#!/bin/bash
fynk1()
{
trap - SIGTSTP
return 0
}
IzFona()
{
trap 'fynk1 ; kill -TSTP $$' SIGTSTP
trap 'IzFona' SIGCONT
echo "2222222222222"
return 0
}
IzFona
while true
do
sleep 0
done
Почему то он не убивается и по ctrl+c.