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:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Agregue servidores según sea necesario para cada usuario agregando algo como lo siguiente al archivo vncservers.conf que acaba de crear:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
luego cree un script de inicio vacío y hágalo ejecutable:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
agregue 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, deberá ejecutar vncserver AL MENOS UNA VEZ COMO CADA USUARIO en el que desee iniciar sesión. Lo pongo en mayúsculas porque si saltas ese paso, nada de eso funcionará. Entonces, como root, podrías hacer:
su justin -c vncserver
su bob -c vncserver
Esto creará un directorio .vnc en el directorio de inicio 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