无法在 Ubuntu 16.04 LTS 上将 x11vnc 作为服务启动

无法在 Ubuntu 16.04 LTS 上将 x11vnc 作为服务启动

我正在尝试将 x11vnc 作为服务运行,以便在启动时启动它。下面是我使用的代码,取自两个答案这里

[Unit]
Description=VNC Server for X11
Requires=display-manager.service
After=display-manager.service

[Service]
Type=forking
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/vnc.passwd -rfbport 5902 -shared
ExecStop=/usr/bin/x11vnc -R stop
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

然后我运行:

 sudo systemctl daemon-reload
 sudo systemctl enable x11vnc.service
 sudo systemctl start x11vnc.service

在最后一个命令中,我收到以下错误消息。

Job for x11vnc.service failed because a timeout was exceeded. See "systemctl status x11vnc.service" and "journalctl -xe" for details.

没有确切的答案systemctl status x11vnc.service,但journalctl -xe如果需要,我可以提供。

我注意到的另一件事是,端口 5900、5901 可以在不同的启动中打开或关闭。我不知道哪个进程占用了它们。

下面的代码可以工作,但是在集成到上面的服务中时无法启动。

重新启动 Ubuntu 时,它最初运行,但几分钟后停止运行。

exec /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/vnc.passwd -rfbport 5902 -shared

Ubuntu 版本:Ubuntu 16.04.6 LTS 发布版本:16.04 代号:xenial

我是否遗漏了什么导致 x11vnc 无法启动?

答案1

这不是修复,而是一种解决方法。我过去常常sudo crontab -e在启动时运行 x11vnc。我只需要在下面的末尾添加这个crontab

@reboot exec /usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /home/geodev/.vnc/passwd -rfbport 5900 -shared

在任何用户登录之前启动它sudo非常重要。x11vnc

答案2

如果你安装了另一个版本的 vncserver,则需要将其删除,然后重新启动机器并再次启动该服务

相关内容