Se volete una configurazione più dinamica e la possibilità di connettersi per più utenti, allora c'è un modo migliore per farlo. Come root create il file (e la directory se non esiste) /etc/sysconfig/vncservers cioè fate:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Aggiungete i server come necessario per ogni utente aggiungendo qualcosa come il seguente al file vncservers.conf appena creato:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
Poi create un init script vuoto e rendetelo eseguibile:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
aggiungere il seguente 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
Come Stephen ha menzionato nella sua risposta, avrete bisogno di eseguire vncserver ALMENO UNA VOLTA COME OGNI UTENTE con cui volete fare il login. L'ho messo in maiuscolo perché se si salta questo passo non funzionerà nulla. Quindi come root potresti fare:
su justin -c vncserver
su bob -c vncserver
Questo creerà una directory .vnc nella home dir di ogni utente con gli appropriati script di avvio.
Infine, fate quanto segue:
update-rc.d vncserver defaults 99
ora puoi riavviare o avviare il servizio manualmente digitando:
service vncserver start