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