Nếu bạn muốn có một cấu hình năng động hơn và khả năng kết nối cho nhiều người dùng thì có một cách tốt hơn để làm điều này. Khi root tạo tập tin (và thư mục nếu nó không tồn tại) / etc / sysconfig / vncservers tức là:
mkdir -p /etc/vncserver
touch /etc/vncserver/vncservers.conf
Thêm máy chủ khi cần cho mỗi người dùng bằng cách thêm một cái gì đó như sau vào tệp vncservers.conf bạn vừa tạo:
VNCSERVERS="1:justin 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080 -depth 24"
VNCSERVERARGS[2]="-geometry 800x600 -depth 8"
tiếp theo tạo một tập lệnh init trống và làm cho nó có thể thực thi được:
touch /etc/init.d/vncserver
chmod +x /etc/init.d/vncserver
thêm phần sau vào /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
Như Stephen đã đề cập trong câu trả lời của mình, bạn sẽ cần chạy vncserver TẠI LEAST ONCE NHƯ MACHI NGƯỜI DÙNG mà bạn muốn đăng nhập. Tôi đặt nó trong mũ vì nếu bạn bỏ qua bước đó thì không cái nào hoạt động cả. Vì vậy, như root bạn có thể làm:
su justin -c vncserver
su bob -c vncserver
Điều này sẽ tạo một thư mục .vnc trong mỗi thư mục nhà của người dùng với các tập lệnh khởi động thích hợp.
Cuối cùng, làm như sau:
update-rc.d vncserver defaults 99
bây giờ bạn có thể khởi động lại hoặc khởi động dịch vụ bằng cách gõ:
service vncserver start