Se si desidera una configurazione più dinamica e la possibilità di connettersi per più utenti, esiste un modo migliore per farlo. Come root, crea il file (e la directory se non esiste) / etc / sysconfig / vncservers ovvero:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Aggiungi server in base alle necessità per ciascun utente aggiungendo qualcosa di simile al seguente nel file vncservers.conf che hai appena creato:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
quindi crea uno script init vuoto e rendilo eseguibile:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
aggiungere quanto segue 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, dovrai eseguire vncserver ALMENO UNA VOLTA COME OGNI UTENTE, vuoi accedere come. Lo metto in maiuscolo perché se salti quel passaggio nessuno di questi funzionerà. Quindi come root potresti fare:
su justin -c vncserver
su bob -c vncserver
Ciò creerà una directory .vnc nella home directory di ogni utente con gli script di avvio appropriati.
Infine, procedi come segue:
update-rc.d vncserver defaults 99
ora puoi riavviare o avviare il servizio manualmente digitando:
service vncserver start