Я хотел бы настроить активацию разъем для x11vnc на сервере, но я не получаю правильную конфигурацию для достижения мои требования.
хотелось бы:
- открыть новое VNC-соединение с сервером через стандартный порт (5900). Активация сокета должна запустить x11vnc на работающем в данный момент X-сервере.
- возможность подключения второго клиента к тому же серверу vnc, чтобы они оба могли видеть тот же экран.
- когда последний клиент отключается,
x11vnc
должен быть остановлен. - новое подключение клиента повторно запускает
x11vnc
если он не работает.
Systemd находится на 225 и x11vnc на 0.9.13.
кажется, я не могу использовать простой x11vnc.socket
+x11vnc.service
сочетание файлов, потому что x11vnc
отобразится на следующий TCP-порт (5901), если он обнаружит, что стандартный порт (5900) уже используется (сокетом systemd).
поэтому я использую systemd "proxy" (см. https://www.freedesktop.org/software/systemd/man/systemd-socket-proxyd.html), так что systemd слушать 5900 и x11vnc на 5901. Поэтому у меня:
прокси-к-x11vnc.сокет:
[Socket]
ListenStream=5900
[Install]
WantedBy=sockets.target
прокси-к-x11vnc.служба:
[Unit]
Description=x11vnc
Requires=x11vnc.service
After=x11vnc.service
[Service]
User=myuser
ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:5901
x11vnc.служба:
[Unit]
Description=x11vnc
[Service]
User=myuser
StandardError=syslog
ExecStart=/usr/bin/x11vnc -auth /home/myuser/.Xauthority -shared -display :0 -rfbport 5901 -noipv6
только прокси-к-x11vnc.сокет запускается/включается.
проблема с этой установки is:
- при первом подключении клиента я вижу, что x11vnc запускается и слушает правильный порт, но клиентское соединение просто "зависает". Глядя на журналы сервера
x11vnc
не появляется при попытке соединения. - убийство клиента и повторное подключение успешно показать удаленный дисплей.
- отключение клиента позволит
x11vnc
завершить, но я не могу повторно подключиться к нему.x11vnc.service
находится в неактивные (мертвые) государство.
спасибо!