Jika Anda menginginkan konfigurasi yang lebih dinamis dan kemampuan untuk terhubung dengan banyak pengguna, maka ada cara yang lebih baik untuk melakukan ini. Sebagai root buat file (dan direktori jika tidak ada) / etc / sysconfig / vncservers yaitu:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Tambahkan server sesuai kebutuhan untuk setiap pengguna dengan menambahkan sesuatu seperti berikut ini ke file vncservers.conf yang baru saja Anda buat:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
selanjutnya buat skrip init kosong dan buat itu bisa dieksekusi:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
tambahkan yang berikut ini ke /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
Seperti yang disebutkan Stephen dalam jawabannya, Anda harus menjalankan vncserver SETIDAKNYA SETELAH SETIAP PENGGUNA yang ingin Anda masuki. Saya mengenakan topi karena jika Anda melewati langkah itu tidak ada yang akan berhasil. Jadi sebagai root Anda bisa melakukannya:
su justin -c vncserver
su bob -c vncserver
Ini akan membuat direktori .vnc di masing-masing direktori home user dengan skrip startup yang sesuai.
Akhirnya, lakukan hal berikut:
update-rc.d vncserver defaults 99
sekarang Anda dapat reboot atau memulai layanan secara manual dengan mengetik:
service vncserver start