Si desea una configuración más dinámica y la capacidad de conectarse para múltiples usuarios entonces hay una mejor manera de hacerlo. Como root cree el archivo (y el directorio si no existe) /etc/sysconfig/vncservers es decir, haga:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Añade los servidores necesarios para cada usuario añadiendo algo como lo siguiente al archivo vncservers.conf que acabas de crear:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
A continuación cree un script de init vacío y hágalo ejecutable:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
añade lo siguiente a /etc/init.d/vncserver:
#!/bin/bash
unset VNCSERVERARGS
VNCSERVERS=""
[-f /etc/vncserver/vncservers.conf] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [-f .vnc/passwd] && vncserver :${DISP} ${VNCUSERARGS}"
fi
done
}
stop() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Shutting down VNCServer: "
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
export USER="${display##*:}"
su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
fi
done
echo -e "\n"
echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [-f /var/lock/subsys/vncserver]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
Como Stephen mencionó en su respuesta, necesitarás ejecutar vncserver POR LO MENOS UNA VEZ COMO CADA USUARIO con el que quieras iniciar sesión. Lo pongo en mayúsculas porque si te saltas ese paso no funcionará nada. Así que como root podrías hacer:
su justin -c vncserver
su bob -c vncserver
Esto creará un directorio .vnc en el directorio de cada usuario con los scripts de inicio apropiados.
Finalmente, haga lo siguiente:
update-rc.d vncserver defaults 99
ahora puede reiniciar o iniciar el servicio manualmente escribiendo:
service vncserver start