LINUX.ORG.RU

Зависает X-овое окно при закрытии родительского терминала


0

0

Ситуация такая. Есть большая программа, которая в некоторые моменты запускает с помощью fork-and-exec команду "xterm -e shell-script.sh", а этот shell-script.sh в свою очередь вызывает другую программу. Последняя отрисовывает графическое окно и затем ждёт его закрытия.

Проблема в том, что если после появления этого окна закрыть не его, а родительский xterm (который был запущен fork-and-exec-ом), то программа вместе со своим окошком не умирают, а зависают навеки. Окно не реагирует на попытки его закрыть и не перерисовывается. Единственное, что помогает - "kill -9".

Почему так? Если запускать не мою программку, а, скажем, xfontsel, то всё хорошо, при закрытии xterm умирает и этот xfontsel. К сожалению, мне сложно показать код программы :((

Всё-таки дело не в нём, а в том, что влияет на реакцию запущенного процесса на умирание терминала-предка?

anonymous

Ответ на: комментарий от mumg

Спасибо. Не совсем то, но близко. Оказалось, сигнал SIGHUP был заблокирован.

anonymous
()

Причина зависания может быть в том, что программа читает что-то из stdin (или STDIN_FILENO отдан в числе прочего select'у), но при этом не отрабатывается EOF -- т.е. ситуация когда read возвращает 0.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.