diff options
Diffstat (limited to 'net-misc/tightvnc/files/tightvnc.initd')
-rw-r--r-- | net-misc/tightvnc/files/tightvnc.initd | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/net-misc/tightvnc/files/tightvnc.initd b/net-misc/tightvnc/files/tightvnc.initd new file mode 100644 index 000000000000..6051fa217c46 --- /dev/null +++ b/net-misc/tightvnc/files/tightvnc.initd @@ -0,0 +1,57 @@ +#!/sbin/runscript +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Id$ + +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/vnc' + return 1 + fi +} + +start() { + checkconfig start || return 1 + ebegin "Starting TightVNC 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 TightVNC server" + for user in $DISPLAYS; do + su -s /bin/sh ${user%%:*} -c "vncserver -kill :${user##*:}" &>/dev/null + done + eend $? +} + +restart() { + svc_stop + svc_start +} |