Si vous souhaitez une configuration plus dynamique et la possibilité de vous connecter pour plusieurs utilisateurs, il existe une meilleure façon de procéder. En tant que root, créez le fichier (et le répertoire s'il n'existe pas) /etc/sysconfig/vncservers, c'est-à-dire faites-le :
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Ajouter des serveurs selon les besoins de chaque utilisateur en ajoutant quelque chose comme ce qui suit au fichier vncservers.conf que vous venez de créer :
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
ensuite, créez un script d'initialisation vide et rendez-le exécutable :
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
ajouter ce qui suit au fichier /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
Comme Stephen l'a mentionné dans sa réponse, vous devrez exécuter vncserver AU MOINS UNE FOIS POUR CHAQUE UTILISATEUR sous lequel vous voulez vous connecter. Je mets cela en majuscules car si vous sautez cette étape, rien ne fonctionnera. Donc, en tant que root, vous pouvez le faire :
su justin -c vncserver
su bob -c vncserver
Cela créera un répertoire .vnc dans le répertoire personnel de chaque utilisateur avec les scripts de démarrage appropriés.
Enfin, faites ce qui suit :
update-rc.d vncserver defaults 99
maintenant vous pouvez soit redémarrer soit démarrer le service manuellement en tapant :
service vncserver start