小编big*_*gie的帖子

如何通过 systemd 套接字激活正确启动 x11vnc?

我想在服务器上为 x11vnc 设置系统套接字激活,但我没有获得正确的配置来满足我的要求。

我想要:

  • 在标准端口 (5900) 上打开与服务器的新 VNC 连接。套接字激活应该在当前运行的 X 服务器上启动 x11vnc。
  • 能够将第二个客户端连接到同一个 vnc 服务器,这样他们就可以看到相同的屏幕。
  • 当最后一个客户端断开连接时,x11vnc应该停止。
  • 如果新的客户端连接x11vnc未运行,则会重新启动。

Systemd 为 225,x11vnc 为 0.9.13。

似乎我不能使用简单的x11vnc.socket+ x11vnc.servicefiles 组合,因为x11vnc如果它检测到标准端口 (5900) 已被使用(由 systemd 套接字),它将映射到下一个 TCP 端口(5901)。

所以我使用 systemd“代理”(参见https://www.freedesktop.org/software/systemd/man/systemd-socket-proxyd.html)以便 systemd 在 5901 上监听 5900 和 x11vnc。所以我有:

代理到 x11vnc.socket

[Socket]
ListenStream=5900
[Install]
WantedBy=sockets.target
Run Code Online (Sandbox Code Playgroud)

代理到 x11vnc.service

[Unit]
Description=x11vnc
Requires=x11vnc.service
After=x11vnc.service
[Service]
User=myuser
ExecStart=/lib/systemd/systemd-socket-proxyd 127.0.0.1:5901
Run Code Online (Sandbox Code Playgroud)

x11vnc.service

[Unit]
Description=x11vnc
[Service]
User=myuser
StandardError=syslog
ExecStart=/usr/bin/x11vnc -auth /home/myuser/.Xauthority -shared …
Run Code Online (Sandbox Code Playgroud)

vnc systemd

6
推荐指数
1
解决办法
1920
查看次数

标签 统计

systemd ×1

vnc ×1