#!/bin/bash # # description: Starts and stops vncserver. \ # used to provide remote X administration services. VNCSERVERS="" [ -f /etc/rc.d/rc.vncservers.conf ] && . /etc/rc.d/rc.vncservers.conf prog="VNC server" start() { printf "Starting $prog: " ulimit -S -c 0 >/dev/null 2>&1 RETVAL=0 for display in ${VNCSERVERS} do printf "${display} " unset BASH_ENV ENV su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*}" RETVAL=$? [ "$RETVAL" -ne 0 ] && break done [ "$RETVAL" -eq 0 ] && echo "success" || echo "failure" [ "$RETVAL" -eq 0 ] && touch /var/lock/subsys/vncserver } stop() { printf "Shutting down $prog: " for display in ${VNCSERVERS} do printf "${display} " unset BASH_ENV ENV su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 done RETVAL=$? [ "$RETVAL" -eq 0 ] && echo "success" || echo "failure" [ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/vncserver } status() { PIDS=$(pidof $1) if [ ! "$PIDS" ]; then echo "$1 is not running!" else echo "$1 is running at pid(s) ${PIDS}." fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; condrestart) if [ -f /var/lock/subsys/vncserver ]; then stop start fi ;; status) status Xvnc ;; *) echo "Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac