LINUX.ORG.RU

Поймать закрытие X server


0

0

Надо, чтобы программа завершалась когда X server отвалился и запускалась когда соединение снова восстановится (прога отображается на X терминале). Принимаются советы как это сделать через скрипт, либо в самой программе (на "C").

anonymous

из сообщения ничего не понятно - какие цели вы приследуете?

lg ★★
()

При отвале сервера можно попробовать ловить сигналы (это в проге
клиентской)

При восстановлении можно пробовать скрипты из конфига xdm например
если он используется или ченить в этом роде. Откровенно говоря не
пробовал.

anonymous
()

---- При отвале сервера можно попробовать ловить сигналы (это в проге
клиентской)
- А что именно (какой сигнал)?

---- из сообщения ничего не понятно - какие цели вы приследуете?
Для непонятливых разжевываю ... :)
Есть 2 машины: X-клиент на котором запускается некоторая программа и X-сервер, на котором должно отображаться, то что делает эта программа.
Связь между машинами, естесственно, по Ethernet.
Если X-сервер неожиданно отваливается (нет связи по Ethernet, сбой, перезагрузка, отключение питания, ...), то требуется, чтобы моя программа узнала об этом и корректно завершила работу. Далее требуется периодическая проверка на предмет оживления X-сервера, чтобы снова запустить программу (эту часть, я думаю, сделать несложно, т.к. можно ориентироваться по результату OpenDisplay).
Пишу на чистом "C" + X, Xt, OpenMotif.

Если будут еще вопросы, то ответ будет, скорее всего, через 2 недели - отпуск.

anonymous
()

Xlib это дело видит (поскольку матерится когда коннект падает)
так что пробуй или пошли вопрос на opennet.ru
Сигналы скорее всего SIGTERM, SIGHUP или SIGKILL. Больше подсказать
нечего

anonymous
()

Sorry for English. An X connection is a plain socket. XConnectionNumber(display). When a server dies badly, an app shall get SIGPIPE. Catch it and react accordingly. Don't forget to chain to the original handler. Of course, an app will not see the signal until it sends a request...

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