如何在登录之前启动VNC服务器?

我想在我的桌面上运行x11vnc(或其他VNC服务器),但是我找不到在任何用户登录之前启动它的方法。在我使用原始的Ubuntu 10.10时,Vino默认就可以实现这一点。然而,我现在在Xubuntu中找不到这样的方法。
3个回答

我通常建议使用另一种VNC服务器,如x11vncserver或FreeNX。 FreeNX的使用方法和下载信息 x11 VNC和文档 这假设VNC已经设置好并可运行:
将下面的代码块复制到/etc/init.d/vncserver中。最简单的方法是将其复制到剪贴板中,在终端中运行sudo -i && cat > /etc/init.d/vncserver && exit,粘贴进去,然后按下Ctrl-D。确保将USER变量更改为您希望VNC服务器在其中运行的用户。
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Default-Start:     3 4 5
# Default-Stop:      0 6
### END INIT INFO

PATH="$PATH:/usr/X11R6/bin/"

# The Username:Group that will run VNC
export USER="mythtv"
#${RUNAS}

# The display that VNC will use
DISPLAY="1"

# Color depth (between 8 and 32)
DEPTH="16"

# The Desktop geometry to use.
#GEOMETRY="<WIDTH>x<HEIGHT>"
#GEOMETRY="800x600"
GEOMETRY="1024x768"
#GEOMETRY="1280x1024"

# The name that the VNC Desktop will have.
NAME="my-vnc-server"

OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac

exit 0

使用命令sudo chmod +x /etc/init.d/vncserver将脚本设置为可执行。
然后,运行sudo update-rc.d vncserver defaults。这将在vncserver脚本中添加适当的符号链接,以便在适当的时间发送启动和停止命令。
注意:如果作业在引导过程中运行得太早,您可能需要使用sudo update-rc.d vncserver 99
要在不重新启动的情况下启动服务器,请运行sudo /etc/init.d/vncserver start
最后,在端口590X上使用VNC客户端连接到您的服务器,其中X是vncserver脚本中的“DISPLAY”值。 source

延迟序列启动命令应该是 sudo update-rc.d vncserver defaults 99,我想。 - Christoph
除了我无法访问网络或垃圾桶之外,一切都运行良好。原因不明。http://askubuntu.com/questions/722802/cannot-browse-network-while-in-vnc - Donny V.

我的解决方案:
1. 进入桌面共享并允许共享,并设置一个强密码。 (取消勾选以允许权限)
2. 进入屏幕设置,并设置30秒后自动锁定。
3. 进入用户设置,并允许自动登录。
vino服务器将启动,您应该能够连接到它。如果需要保护安全性,您可以使用ssh创建VNC的隧道(我使用PUTTY,效果非常好)。您还可以启用防火墙,并只允许来自特定地址的流量通过。这个解决方案在我使用过的20多台Ubuntu电脑上都有效。


只有在登录之后才会启动该应用程序。我希望能在登录之前就启动它。 - PHLAK
增加了可能的解决方案.. - david6
2解决方案已过时。 - vainolo
有人说这已经过时了,但我今天刚刚做了一次,它完全正常。运行update-rc.d命令时会出现一些警告,但它可以正常工作。 - John Martin