Я пытаюсь получить Real VNC сервер на Ubuntu 10.04 LTS 64 бит.
Я попробовал 2 варианта. Во-первых, я получил бесплатную версию Real VNC и начал работать после того, как все требует 32-битных библиотек, взлома конфигурации и т. Д. Это почти хорошо с одной маленькой проблемой, после того, как я отключаю клиента, сервер печатает Abortedи завершает работу. Я пробовал много комбинаций параметров и не мог понять это.
Это примерно командная строка, которую я использовал (но я пробовал много комбинаций параметров).
Второй вариант Я получил пробную версию Real VNC Enterprise 4.6.1 и установил ее. Теперь я могу с радостью запустить его как автономный сервер, и мои клиенты могут отключиться, не убивая сервер, но когда я пытаюсь использовать его с -inetdопцией, он просто тихо завершает работу. Когда я пробую бесплатную версию, она переходит в режим stdio и печатает сообщение о рукопожатии.
RFB 003.008
Не в случае с корпоративной версией. Это просто выходит. Нет сообщений и нет журналов.
Так есть ли у кого-нибудь идеи о том, как заставить любой вариант работать?
По рекомендации @grawity я запускаю straceи ltrace. Вот наиболее интересный вывод ltrace (я собрал данные в файл с именем abc и вставил только те строки, которые мне интересны):
Может случиться так, что режим inetd требует, чтобы stdin и stdout были сокетами - например, это необходимо для определения IP-адреса клиента. Вполне вероятно, что RealVNC не готов getpeername()к возвращению неудачи.
В качестве альтернативы используйте Xvnc.
Спасибо за упоминание strace и ltrace. Вы можете быть правы в отношении сокетов. Я обновил свой вопрос с выводом ltrace. Но что мне делать дальше, чтобы решить это?
Alex Gitelman 12 лет назад
0
@ Алекс: Проблема не должна возникать при запуске RealVNC под * real * xinetd. Вы уже пробовали это?
grawity 12 лет назад
0
Я попробовал из реального xinetd. Я могу подключиться, увидеть X экран на секунду, а затем он умирает. Я также не могу понять, как получить журнал от VNC.
Alex Gitelman 12 лет назад
0
Попробуйте перехватчик пакетов; Сообщения об ошибках обычно отправляются в stderr, который отправляется через один и тот же сокет xinetd. Также проверьте `dmesg` на наличие программных сбоев и` / var / log / messages` | `/ var / log / syslog` |` / var / log / everything.log` для журналов VNC.
grawity 12 лет назад
0
На самом деле, я случайно :( нашел журнал vnc. Не уверен, почему мои попытки направить его в определенное место не удаются. Он всегда просто говорит, что `inetd client отсутствует '. Но в любом случае, очевидно, есть проблема с разрешениями. Я изменил пользователя в xinetd Конфигурационный файл для меня, и теперь я могу подключиться. Тем не менее, он все еще умирает, как только я отключаю клиента. Я думаю, что есть опция для xinetd, которая управляет им. Я просматриваю документы и, вероятно, найду его, но вы помните, что в верхней части твоя голова?
Alex Gitelman 12 лет назад
0
@ Алекс: Что делать, если вы измените пользователя на `root`? Кроме того, в режиме inetd сервер * должен * выйти после потери соединения TCP.
grawity 12 лет назад
0
Если сервер отключится после отключения, это лишит меня значимости использования vnc. Например, я работаю на своем ноутбуке, подключаюсь, а затем просто захожу на кофе. Ноутбук переходит в режим энергосбережения, и я теряю сеанс. Я почти уверен, что со мной это не случалось с настройками Red Hat. Я попробую root, хотя в документах vnc четко сказано, что этого делать не следует.
Alex Gitelman 12 лет назад
0
@ Алекс: Тогда не используйте его в режиме inetd; запустить его как демон.
grawity 12 лет назад
0
корень не имеет значения. Это все еще выходит.
Alex Gitelman 12 лет назад
0
Я собирался использовать его в качестве демона. Но, наконец, я установил «wait = yes», и это, похоже, решило мою проблему. Ура! Что на самом деле имеет смысл, так как я хочу просто всегда подключаться к одному и тому же экземпляру моего сервера.
Alex Gitelman 12 лет назад
0