我正在尝试将 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 启动吗?
这不是修复,而是一种解决方法。我曾经
sudo crontab -e
在启动时存储运行 x11vnc。我只需要在下面添加这个crontab
。在任何用户登录之前
sudo
开始运行它很重要。x11vnc
如果您安装了另一个版本的 vncserver,则需要将其删除,然后重新启动机器并再次启动服务