You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.5 KiB

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/net-misc/tigervnc/files/tigervnc.initd,v 1.3 2010/03/06 16:30:03 armin76 Exp $
depend() {
need net
}
checkconfig() {
if [ -n "${DISPLAYS}" ]; then
if [ $1 = "start" ]; then
local user
for user in $DISPLAYS; do
if eval [ ! -f "~${user%%:*}/.vnc/passwd" ]; then
eerror "There are no passwords defined for user ${user%%:*}."
return 1
elif [ -e "/tmp/.X11-unix/X${user##*:}" ]; then
eerror "Display :${user##*:} appears to be already in use because of /tmp/.X11-unix/X${user##*:}"
eerror "Remove this file if there is no X server $HOSTNAME:${user##*:}"
return 1
elif [ -e "/tmp/.X${user##*:}-lock" ]; then
eerror "Display :${user##*:} appears to be already in use because of /tmp/.X${user##*:}-lock"
eerror "Remove this file if there is no X server $HOSTNAME:${user##*:}"
return 1
fi
done
fi
return 0
else
eerror 'Please define $DISPLAYS in /etc/conf.d/tigervnc'
return 1
fi
}
start() {
checkconfig start || return 1
ebegin "Starting TigerVNC server"
for user in $DISPLAYS; do
su -s /bin/sh ${user%%:*} -c "cd ~${user%%:*} && vncserver :${user##*:} $VNC_OPTS" &>/dev/null
done
eend $?
}
stop() {
checkconfig stop || return 2
ebegin "Stopping TigerVNC server"
for user in $DISPLAYS; do
su -s /bin/sh ${user%%:*} -c "vncserver -kill :${user##*:}" &>/dev/null
done
eend $?
}
restart() {
svc_stop
svc_start
}