Название: Как отловить завершение работы X-сервера? (События? Events?) Отправлено: xintrea от Май 02, 2013, 17:40 Здраствуйте!
Есть в моей Qt-программе застаревший баг. Программа постоянно висит в систрее. При выключении X-сервера программа видимо, держит какой-то открытый файл, и блокирует выход из X-сервера. Появляется сообщение о том, что прорамма не позволяет завершить работу X-сервера. Чтобы выключить компьютер, приходится вручную выйти из программы, после чего X-сервер нормально выключается. (В данный момент я грешу на QtSingleApplication, так как данный объект держит открытым lock-файл. Но это не суть.) В общем, нужно каким-то образом отловить сигналы X-сервера, и в момент прихода сигнала о завершении работы X-сервера выйти из программы. В связи с этим вопросы: 1. Кто-нибудь знает, что за сигнал выдает X-сервер при завершении работы? 2. Требуется пример кода для отслеживания сигналов X-сервера. Название: Re: Как отловить завершение работы X-сервера? (События? Events?) Отправлено: maint от Май 02, 2013, 18:03 скорей всего либо SIGKILL посылается, либо SIGTERM.
в man signal все хорошо описано Название: Re: Как отловить завершение работы X-сервера? (События? Events?) Отправлено: xintrea от Май 02, 2013, 19:41 скорей всего либо SIGKILL посылается, либо SIGTERM. в man signal все хорошо описано Нет, ни SIGKILL ни SIGTERM при закрытии X-сервера не отправляются. SIGKILL и SIGTERM отправляются при окончательном завершении работы системы, т. е. гораздо пожже чем выключение X-сервера. Это уже выяснено не только мной: http://forum.ubuntu.ru/topic_140773_15.html Тут надо именно события X-сервера ловить. А я не пойму как это делается. |