หากคุณต้องการการกำหนดค่าแบบไดนามิกที่มากขึ้นและความสามารถในการเชื่อมต่อสำหรับผู้ใช้หลายคนก็มีวิธีที่ดีกว่าในการทำเช่นนี้ ในฐานะที่เป็นรากสร้างไฟล์ (และไดเรกทอรีหากไม่มี) / etc / sysconfig / vncservers ie ทำ:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
เพิ่มเซิร์ฟเวอร์ตามต้องการสำหรับผู้ใช้แต่ละคนโดยเพิ่มสิ่งต่อไปนี้ในไฟล์ vncservers.conf ที่คุณเพิ่งสร้างขึ้น:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
สร้างสคริปต์เริ่มต้นที่ว่างเปล่าต่อไปและทำให้ปฏิบัติได้:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
เพิ่มสิ่งต่อไปนี้ใน /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
ดังที่สตีเฟ่นกล่าวถึงในคำตอบของเขาคุณจะต้องเรียกใช้ vncserver อย่างน้อยที่สุดเท่าที่ผู้ใช้แต่ละคนที่คุณต้องการเข้าสู่ระบบเป็น ฉันใส่มันเข้าไปในหมวกเพราะถ้าคุณข้ามขั้นตอนนั้นไปมันจะไม่ทำงาน ดังนั้นในฐานะที่เป็นรากคุณสามารถทำ:
su justin -c vncserver
su bob -c vncserver
สิ่งนี้จะสร้างไดเรกทอรี. vnc ในผู้ใช้แต่ละคนที่บ้านด้วยสคริปต์เริ่มต้นที่เหมาะสม
ในที่สุดทำต่อไปนี้:
update-rc.d vncserver defaults 99
ตอนนี้คุณสามารถรีบูตหรือเริ่มบริการด้วยตนเองโดยพิมพ์:
service vncserver start