यदि आप अधिक गतिशील कॉन्फ़िगरेशन और कई उपयोगकर्ताओं के लिए कनेक्ट करने की क्षमता चाहते हैं तो ऐसा करने का एक बेहतर तरीका है। रूट के रूप में फ़ाइल बनाएँ (और निर्देशिका अगर यह मौजूद नहीं है) / etc / sysconfig / vncservers अर्थात:
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"
अगले एक खाली init स्क्रिप्ट बनाएं और इसे निष्पादन योग्य बनाएं:
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 AT LEAST ONCE चलाना होगा। मैंने उसे कैप में रखा क्योंकि अगर आप उस स्टेप को छोड़ देते हैं तो उसमें से कोई भी काम नहीं करेगा। तो जड़ के रूप में आप कर सकते हैं:
su justin -c vncserver
su bob -c vncserver
यह उपयुक्त स्टार्टअप स्क्रिप्ट के साथ प्रत्येक उपयोगकर्ता के घर में एक .vnc निर्देशिका बनाएगा।
अंत में, निम्नलिखित करें:
update-rc.d vncserver defaults 99
अब आप या तो रिबूट कर सकते हैं या टाइप करके मैन्युअल रूप से सेवा शुरू कर सकते हैं:
service vncserver start