无法启动VNC服务器,因为 :0 已被占用。

14

我有一个运行Raspbian操作系统的Raspberry Pi。在安装VNC之后,我尝试启动服务器并返回以下内容:

 ~ $ vncserver :0

Warning: raspberrypi:0 is taken because of /tmp/.X0-lock
Remove this file if there is no X server raspberrypi:0
A VNC server is already running as :0
如果我删除了那个临时文件,就返回这个:
~ $ vncserver :0

Warning: raspberrypi:0 is taken because of /tmp/.X11-unix/X0
Remove this file if there is no X server raspberrypi:0
A VNC server is already running as :0

如果我再次移除,服务器将重新启动,但VNC客户端会显示一个纯灰色的屏幕。简而言之,在执行以下操作后:

~ $ sudo rm /tmp/.X11-unix/X0
~ $ sudo rm /tmp/.X0-lock
~ $ vncserver :0

New 'X' desktop is raspberrypi:0

Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:0.log

我可以在RealVNC客户端中看到这个(屏幕截图):

https://dzwonsemrish7.cloudfront.net/items/40182G3E332b3f1j3846/Captura%20de%20pantalla%202013-11-11%20a%20las%2023.03.46.png?v=6719a796

我不知道发生了什么事情。

4个回答

5
最后,我发现我可以在1号端口运行VNC。
vncserver :1

那么,我必须连接VNC Viewer在...
myIP:1

它可用。


3
通常情况下,VNC 会在 :1 上运行,这是一个不同的会话。如果想要在 :0 上运行,请使用 x11vnc。 - Ranhiru Jude Cooray
最近我遇到了同样的问题,我让VNC在启动时运行,但似乎导致了这个问题。谢谢。 - visual
谢谢!运行得非常顺利。 - Lonefish
TigerVNC能够进行X显示屏的抓取。 https://www.howtoforge.com/tutorial/how-to-start-a-vnc-server-for-the-actual-display-scraping-with-tigervnc/ - Sergey Ponomarev

4
我遇到了这个问题。
默认设置是“自动登录”、“以用户Pi的身份登录”,这意味着:0会话已经被占用。
使用“菜单 > 首选项 > 树莓派配置”取消勾选此选项,您的原始方案就可以正常工作了。
您可以通过命令行修改默认设置:
sudo raspi-config
(选项3 -> B2),或通过新的VNC会话进行修改,
或通过新的VNC会话使用会话:1
vncserver:1-geometry 1920x1080-depth 24-dpi 96

您还需要禁用“启动到桌面”。 - Sean Cull

1

您应该使用x11vnc,通过apt install x11vnc安装它,并运行x11vnc -auth /var/run/lightdm/root/\:0 -display :0 -geometry 1280x720来绑定当前的X11会话。

之后,您可以运行vncviewer <your-machine-name>:0连接到它。(您还需要安装vncviewer,可以从apt-cache search vncviewer中选择几个选项)

vncserver不如x11vnc好,因为它不能绑定现有的X11会话,只能创建新的X11会话。而x11vnc可以做到两者。

为了消除安全启动消息,您可以使用x11vnc -storepasswd设置密码,并使用x11vnc -auth /var/run/lightdm/root/\:0 -display :0 -rfbauth ~/.vnc/passwd运行它。


这是正确的答案。为了消除巨大的安全启动消息,您可以使用 x11vnc -storepasswd 设置密码,并使用 x11vnc -auth /var/run/lightdm/root/\:0 -display :0 -rfbauth ~/.vnc/passwd 运行它。 - Brethlosze

0
尝试杀掉使用5900端口(即:0)的进程。你可以像这样查找该进程- netstat -antup | grep 5900。使用 kill -9 PID 命令杀死它。然后再次启动vncserver即可。

1
谢谢你的答复。我尝试过了,但是没有任何返回值:sudo netstat -antup | grep 5900 - aitor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接