146 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # maxscale:   The MariaDB Corporation MaxScale database proxy
 | |
| #
 | |
| # description:  MaxScale provides database specific proxy functionality
 | |
| #
 | |
| # processname: maxscale
 | |
| #
 | |
| ### BEGIN INIT INFO
 | |
| # Provides: maxscale
 | |
| # Required-Start: $syslog $local_fs
 | |
| # Required-Stop: $syslog $local_fs
 | |
| # Default-Start: 2 3 4 5
 | |
| # Default-Stop: 0 1 6
 | |
| # Short-Description: The maxscale database proxy
 | |
| # Description: MaxScale is a database proxy server that can be used to front end
 | |
| # database clusters offering different routing, filtering and protocol choices
 | |
| ### END INIT INFO
 | |
| 
 | |
| #############################################
 | |
| # MaxScale HOME, PIDFILE, LIB
 | |
| #############################################
 | |
| 
 | |
| export MAXSCALE_HOME=/usr/local/skysql/maxscale
 | |
| export MAXSCALE_PIDFILE=$MAXSCALE_HOME/log/maxscale.pid
 | |
| export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAXSCALE_HOME/lib
 | |
| 
 | |
| ###############################
 | |
| # LSB Exit codes (non-Status)
 | |
| ###############################
 | |
| _RETVAL_GENERIC=1
 | |
| _RETVAL_NOT_INSTALLED=5
 | |
| _RETVAL_NOT_RUNNING=7
 | |
| 
 | |
| ###############################
 | |
| # LSB Status action Exit codes
 | |
| ###############################
 | |
| _RETVAL_STATUS_OK=0
 | |
| _RETVAL_STATUS_NOT_RUNNING=3
 | |
| 
 | |
| # Sanity checks.
 | |
| [ -x $MAXSCALE_HOME/bin/maxscale ] || exit $_RETVAL_NOT_INSTALLED
 | |
| 
 | |
| #################################
 | |
| # stop/start/status related vars
 | |
| #################################
 | |
| NAME=maxscale
 | |
| DAEMON=$MAXSCALE_HOME/bin/maxscale
 | |
| 
 | |
| # Source function library.
 | |
| . /lib/lsb/init-functions
 | |
| 
 | |
| # we can rearrange this easily
 | |
| processname=maxscale
 | |
| servicename=maxscale
 | |
| 
 | |
| RETVAL=0
 | |
| 
 | |
| start() {
 | |
|         log_daemon_msg "Starting MaxScale"
 | |
|         start_daemon -p $MAXSCALE_PIDFILE $DAEMON 2> /dev/null
 | |
| 
 | |
|         sleep 2
 | |
| 
 | |
|         status_of_proc -p $MAXSCALE_PIDFILE $DAEMON $NAME
 | |
| 
 | |
|         log_end_msg $?
 | |
| }
 | |
| 
 | |
| stop() {
 | |
|         log_daemon_msg "Stopping MaxScale"
 | |
|         killproc -p $PIDFILE $DAEMON 2>&1 /dev/null
 | |
| 
 | |
|         maxscale_wait_stop
 | |
| 
 | |
|         log_end_msg $?
 | |
| }
 | |
| 
 | |
| reload() {
 | |
|         log_daemon_msg "Reloading MaxScale"
 | |
| 
 | |
|         killproc -p $MAXSCALE_PIDFILE $DAEMON 1
 | |
| 
 | |
|         log_end_msg $?
 | |
| }
 | |
| 
 | |
| maxscale_wait_stop() {
 | |
|         PIDTMP=$(pidofproc -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale)
 | |
|         kill -TERM "${PIDTMP:-}" 2> /dev/null;
 | |
|         if [ -n "${PIDTMP:-}" ] && kill -0 "${PIDTMP:-}" 2> /dev/null; then
 | |
|                 local i=0
 | |
|                 while kill -0 "${PIDTMP:-}" 2> /dev/null;  do
 | |
|                         if [ $i = '60' ]; then
 | |
|                                 break
 | |
|                                 STATUS=2
 | |
|                         fi
 | |
|                         [ "$VERBOSE" != no ] && log_progress_msg "."
 | |
|                         sleep 1
 | |
|                         i=$(($i+1))
 | |
|                 done
 | |
|                 return $STATUS
 | |
|         else
 | |
|             return $STATUS
 | |
|         fi
 | |
| }
 | |
| 
 | |
| # See how we were called.
 | |
| case "$1" in
 | |
|     start)
 | |
| 	start
 | |
|         ;;
 | |
|     stop)
 | |
|         stop
 | |
|         ;;
 | |
|     status)
 | |
| 	# return 0 on success
 | |
| 	# return 3 on any error
 | |
| 
 | |
|         log_daemon_msg "Checking MaxScale"
 | |
|         status_of_proc -p $MAXSCALE_PIDFILE $DAEMON $NAME
 | |
|         RETVAL=$?
 | |
| 
 | |
|         if [ $RETVAL -ne 0 ]; then
 | |
|                 [ $RETVAL -eq 1 ]
 | |
| 
 | |
|                 RETVAL=$_RETVAL_STATUS_NOT_RUNNING
 | |
|         else
 | |
|                 RETVAL=$_RETVAL_STATUS_OK
 | |
|         fi
 | |
| 
 | |
|         log_end_msg $RETVAL
 | |
|         ;;
 | |
|     restart)
 | |
|         stop
 | |
|         start
 | |
|         ;;
 | |
|     reload)
 | |
| 	reload
 | |
|         RETVAL=$?
 | |
|         ;;
 | |
|     *)
 | |
|         echo $"Usage: $0 {start|stop|status|restart|reload}"
 | |
|         ;;
 | |
| esac
 | |
| exit $RETVAL
 | 
