Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > *nix > не могу второй раз отправить в фон скрипт |
Автор: v4567 23.08.17, 17:40 |
Есть скрипт, в нём устанавливаю свои обработчики сигналов, в частности сигнал Ctrl+z отправки в фон. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> trap 'fynk ; kill -TSTP $$' SIGTSTP В функции fynk возвращаю сигналы обратно в систему, командой: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> trap - SIGTSTP Как видно после выполнения функции fynk и в результате возврата сигнала в систему, выполняется команда: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> kill -TSTP $$ которая опять посылает сигнал отправки в фон нашему скрипту (без этой команды после отправки в фон командная строка не возвращается). В фон скрипт отправляется отлицно и после командная строка работает нормально. Возвращается из фона скрипт то же нормально. Естественно после возврата из фона я опять устанавливаю свои обработчики сигналов. Второй раз скрипт уже не отправляется в фон. Почему не могу понять, ведь обработчики сигналов я опять установил свои. Добавлено через 28 минут Например вот такой скрипт во второй раз в фон не отправляется: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> #!/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. |