#!/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 PIDFILE and LIB ############################################# export MAXSCALE_PIDFILE=@MAXSCALE_VARDIR@/run/maxscale/maxscale.pid export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@CMAKE_INSTALL_PREFIX@/@MAXSCALE_LIBDIR@/maxscale ############################### # 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 # Create PID directory if not exists /usr/bin/install -d -o maxscale -g maxscale @MAXSCALE_VARDIR@/run/maxscale # Sanity checks. [ -x @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale ] || exit $_RETVAL_NOT_INSTALLED # Source function library. . /etc/rc.d/init.d/functions # Source additional command line arguments. [ -f /etc/sysconfig/maxscale ] && . /etc/sysconfig/maxscale # we can rearrange this easily processname=maxscale servicename=maxscale RETVAL=0 start() { echo -n $"Starting MaxScale: " my_check=`status -p $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale` CHECK_RET=$? [ $CHECK_RET -eq 0 ] && echo -n " found $my_check" && success && CHECK_RET=0 if [ ! -d @MAXSCALE_VARDIR@/log/maxscale ] then mkdir -p @MAXSCALE_VARDIR@/log/maxscale fi if [ ! -d @MAXSCALE_VARDIR@/cache/maxscale ] then mkdir -p @MAXSCALE_VARDIR@/cache/maxscale fi if [ ! -d @MAXSCALE_VARDIR@/lib/maxscale ] then mkdir -p @MAXSCALE_VARDIR@/lib/maxscale fi if [ ! -d @MAXSCALE_VARDIR@/run/maxscale ] then mkdir -p @MAXSCALE_VARDIR@/run/maxscale fi chown -R maxscale:maxscale @MAXSCALE_VARDIR@/log/maxscale chown -R maxscale:maxscale @MAXSCALE_VARDIR@/lib/maxscale chown -R maxscale:maxscale @MAXSCALE_VARDIR@/cache/maxscale chown -R maxscale:maxscale @MAXSCALE_VARDIR@/run/maxscale chmod 0755 @MAXSCALE_VARDIR@/log/maxscale chmod 0755 @MAXSCALE_VARDIR@/lib/maxscale chmod 0755 @MAXSCALE_VARDIR@/cache/maxscale chmod 0755 @MAXSCALE_VARDIR@/run/maxscale ulimit -HSn 65535 daemon --pidfile $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale --user=maxscale $MAXSCALE_OPTIONS >& /dev/null RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename if [ $CHECK_RET -ne 0 ]; then sleep 2 my_check=`status -p $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale` CHECK_RET=$? [ $CHECK_RET -eq 0 ] && echo -n $my_check && success || failure fi # Return right code if [ $RETVAL -ne 0 ]; then failure RETVAL=$_RETVAL_NOT_RUNNING fi echo return $RETVAL } stop() { echo -n $"Stopping MaxScale: " killproc -p $MAXSCALE_PIDFILE -TERM RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$servicename # Return rigth code if [ $RETVAL -ne 0 ]; then RETVAL=$_RETVAL_NOT_RUNNING fi return $RETVAL } reload() { echo -n $"Reloading MaxScale: " killproc -p $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale -HUP RETVAL=$? echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) # return 0 on success # return 3 on any error echo -n $"Checking MaxScale status: " status -p $MAXSCALE_PIDFILE 'MaxScale' RETVAL=$? if [ $RETVAL -ne 0 ]; then echo -ne "\033[1A" [ $RETVAL -eq 1 ] && warning || failure echo -ne "\033[1B" RETVAL=$_RETVAL_STATUS_NOT_RUNNING else echo -ne "\033[1A" success echo -ne "\033[1B" RETVAL=$_RETVAL_STATUS_OK fi exit $RETVAL ;; restart) stop start ;; condrestart) if [ -f /var/lock/subsys/$servicename ]; then stop start fi ;; reload) reload RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" ;; esac exit $RETVAL