summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/tightvnc/files/tightvnc.initd')
-rw-r--r--net-misc/tightvnc/files/tightvnc.initd57
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
+}