Wenn Sie eine dynamischere Konfiguration und die Möglichkeit einer Verbindung für mehrere Benutzer wünschen, gibt es eine bessere Möglichkeit, dies zu tun. Erstellen Sie als root die Datei (und das Verzeichnis, falls es nicht existiert) / etc / sysconfig / vncservers.
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Fügen Sie nach Bedarf Server für jeden Benutzer hinzu, indem Sie der soeben erstellten Datei vncservers.conf Folgendes hinzufügen:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
Als nächstes erstellen Sie ein leeres Init-Skript und machen es ausführbar:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
Fügen Sie Folgendes zu /etc/init.d/vncserver hinzu:
#!/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
Wie Stephen in seiner Antwort erwähnt hat, müssen Sie vncserver MINDESTENS EINMAL ALS JEDEN BENUTZER ausführen, unter dem Sie sich anmelden möchten. Ich setze das in Großbuchstaben, denn wenn Sie diesen Schritt überspringen, wird nichts davon funktionieren. Als root könnten Sie also tun:
su justin -c vncserver
su bob -c vncserver
Dadurch wird in jedem Benutzer-Ausgangsverzeichnis ein .vnc-Verzeichnis mit den entsprechenden Startskripten erstellt.
Führen Sie abschließend Folgendes aus:
update-rc.d vncserver defaults 99
Jetzt können Sie den Dienst entweder neu starten oder manuell starten, indem Sie Folgendes eingeben:
service vncserver start