diff options
Diffstat (limited to 'contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service')
-rw-r--r-- | contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service b/contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service new file mode 100644 index 00000000..86a8a910 --- /dev/null +++ b/contrib/packages/deb/ubuntu-xenial/debian/local/vncserver.service @@ -0,0 +1,94 @@ +#!/bin/bash +# +# Init file for TigerVNC Server +# +# chkconfig: - 91 35 +# description: TigerVNC remote X administration daemon. +# +# processname: Xvnc + +### BEGIN INIT INFO +# Provides: vncservers +# Required-Start: networking +# Required-Stop: networking +# Default-Start: +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Starts and stops vncserver +# Description: Used to provide remote X administration services. +### END INIT INFO + +# Source function library. +. /lib/lsb/init-functions + +### Default variables +SYSCONFIG="/etc/default/vncservers" +VNCSERVERS="" + +### Read configuration +[ -r "$SYSCONFIG" ] && . "$SYSCONFIG" + +RETVAL=0 +prog=$"VNC server" + +start() { + echo -n $"Starting $prog: " + ulimit -S -c 0 >/dev/null 2>&1 + for display in ${VNCSERVERS}; do + echo -n "${display} " + if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then + unset BASH_ENV ENV + log_begin_msg "Starting VNC Server for user ${display##*:}:" + su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}" + RETVAL="$?" + if [ "$RETVAL" -ne 0 ]; then + log_end_msg 1 + break + else + log_end_msg 0 + fi + else + log_begin_msg "Not starting VNC Server for user ${display##*:}.\n File \"~${display##*:}/.vnc/passwd\" not found.\n Create a password file for the VNC server with vncpasswd" + log_end_msg 1 + fi + done + echo + [ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver" + return $RETVAL +} + +stop() { + echo -n $"Shutting down $desc: " + for display in ${VNCSERVERS}; do + echo -n "${display} " + unset BASH_ENV ENV + log_begin_msg "Shutting down VNC Server for user ${display##*:}: " + su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 + RETVAL="$?" + [ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1 + done + echo + [ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver" + return $RETVAL +} + +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo $"Usage: $0 {start|stop|restart}" + RETVAL=1 +esac + +exit $RETVAL |