You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			INI
		
	
			
		
		
	
	
			155 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			INI
		
	
| #!/bin/bash
 | |
| #
 | |
| # chkconfig: - 91 35
 | |
| # description: Starts and stops vncserver. \
 | |
| #	       used to provide remote X administration services.
 | |
| 
 | |
| ### BEGIN INIT INFO
 | |
| # Provides: vncserver
 | |
| # Required-Start: $network $named
 | |
| # Required-Stop: $network $named
 | |
| # Default-Start:
 | |
| # Default-Stop: 0 1 2 3 4 5 6
 | |
| # Short-Description: start|stop|restart|try-restart|status|force-reload vncserver
 | |
| # Description: control vncserver which exports your desktop
 | |
| ### END INIT INFO
 | |
| 
 | |
| # Source function library.
 | |
| . /etc/init.d/functions
 | |
| 
 | |
| [ -r /etc/sysconfig/vncservers ] && . /etc/sysconfig/vncservers
 | |
| 
 | |
| prog=$"VNC server"
 | |
| 
 | |
| RETVAL=0
 | |
| 
 | |
| start() {
 | |
|     [ "$EUID" != "0" ] && exit 4
 | |
|     
 | |
|     # Source networking configuration.
 | |
|     . /etc/sysconfig/network
 | |
| 
 | |
|     # Check that networking is up.
 | |
|     [ ${NETWORKING} = "no" ] && exit 1
 | |
| 
 | |
|     [ -x /usr/bin/vncserver ] || exit 5
 | |
|     [ -x /usr/bin/Xvnc ] || exit 5
 | |
| 
 | |
|     echo -n $"Starting $prog: "
 | |
|     RETVAL=0
 | |
|     if [ ! -d /tmp/.X11-unix ]
 | |
|     then
 | |
|         mkdir -m 1777 /tmp/.X11-unix || :
 | |
|         restorecon /tmp/.X11-unix 2>/dev/null || :
 | |
|     fi
 | |
| 
 | |
|     for display in ${VNCSERVERS}
 | |
|     do
 | |
|       SERVS=1
 | |
|       echo -n "${display} "
 | |
|       DISP="${display%%:*}"
 | |
|       USER="${display##*:}"
 | |
|       VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
 | |
|       if [ -r $(eval echo ~${USER})/.vnc/passwd ]; then
 | |
|          runuser -l ${USER} -c \
 | |
|             "cd ~${USER} && vncserver :${DISP} ${VNCUSERARGS}"
 | |
|          RETVAL=$?
 | |
|       else
 | |
|         echo
 | |
|         echo VNC password for user ${USER} is not configured
 | |
|         RETVAL=1
 | |
|       fi
 | |
|       [ "$RETVAL" -eq 0 ] || break
 | |
|     done
 | |
|     if [ -z "$SERVS" ]; then
 | |
|         echo -n "no displays configured "
 | |
|         failure
 | |
|         RETVAL=6
 | |
|     else
 | |
|         if [ "$RETVAL" -eq 0 ]; then
 | |
| 	    success $"vncserver startup"
 | |
| 	    touch /var/lock/subsys/Xvnc
 | |
|         else 
 | |
|             failure $"vncserver start"
 | |
|         fi
 | |
|     fi
 | |
|     echo
 | |
| 
 | |
| # As written in https://bugzilla.redhat.com/show_bug.cgi?id=523974 (LSB
 | |
| # compliance) start of already running service is OK.
 | |
|     [ "$RETVAL" -eq 98 ] && RETVAL=0
 | |
| 
 | |
|     return "$RETVAL"
 | |
| }
 | |
| 
 | |
| stop() {
 | |
|     [ "$EUID" != "0" ] && exit 4
 | |
| 
 | |
|     echo -n $"Shutting down $prog: "
 | |
| 
 | |
|     status Xvnc > /dev/null 2>&1
 | |
|     RETVAL=$?
 | |
| 
 | |
|     # 3 means service is already stopped
 | |
|     if ! [ "$RETVAL" -eq 3 ]; then
 | |
| 	for display in ${VNCSERVERS}; do
 | |
| 	    echo -n "${display} "
 | |
| 	    export USER="${display##*:}"
 | |
| 	    runuser ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
 | |
| 	done
 | |
| 	RETVAL=$?
 | |
|     else
 | |
| 	let RETVAL=0
 | |
|     fi
 | |
| 
 | |
|     [ "$RETVAL" -eq 0 ] && success $"vncserver shutdown" || \
 | |
| 	failure $"vncserver shutdown"
 | |
|     echo
 | |
|     [ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/Xvnc
 | |
|     return "$RETVAL"
 | |
| }
 | |
| 
 | |
| # See how we were called.
 | |
| case "$1" in
 | |
|   start)
 | |
| 	start
 | |
| 	;;
 | |
|   stop)
 | |
| 	stop
 | |
| 	;;
 | |
|   restart|force-reload)
 | |
| 	stop
 | |
| 	sleep 3
 | |
| 	start
 | |
| 	;;
 | |
|   condrestart)
 | |
| #	https://bugzilla.redhat.com/show_bug.cgi?id=508367
 | |
| #	echo "condrestart is obsolete, use try-restart instead"
 | |
| 	if [ -e /var/lock/subsys/Xvnc ]; then
 | |
| 	    stop
 | |
| 	    sleep 3
 | |
| 	    start
 | |
| 	fi
 | |
| 	;;
 | |
|   try-restart)
 | |
|         if [ -e /var/lock/subsys/Xvnc ]; then
 | |
|             stop
 | |
|             sleep 3
 | |
|             start
 | |
|         fi
 | |
|         ;;
 | |
|   status)
 | |
| 	status Xvnc
 | |
| 	RETVAL=$?
 | |
| 	;;
 | |
|   reload)
 | |
| 	exit 3
 | |
| 	;;
 | |
|   *)
 | |
| 	echo $"Usage: $0 {start|stop|restart|try-restart|status|force-reload}"
 | |
| 	exit 2
 | |
| esac
 | |
| 
 | |
| exit "$RETVAL"
 | |
| 
 |