Ubuntu VNC Server – How to Auto Start on Boot

Ubuntuvncvncserver

I installed the Ubuntu desktop on a Ubuntu 9.10 VPS server and am able to connect to the server using TightVNC. However, the VNC server on this VPS can only be started by logging in through SSH and typing the following command:

vncserver :1 -geometry 800x600 -depth 16 -pixelformat rgb565

If I run this command on startup or as a schedule task, it won't start. What are my options?

Best Answer

I found these instructions by searching Google for "ubuntu launch vnc server on startup".

  1. Install the VNC server.
  2. Launch vncserver for the first time to set up a password.
  3. Add the following file as /etc/init.d/vncserver (be sure to modify the USER, GEOMETRY, NAME, etc. to your liking).
  4. sudo chmod +x /etc/init.d/vncserver
  5. sudo update-rc.d vncserver defaults

/etc/init.d/vncserver

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Default-Start:     S
# 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