Log, lib, cache and run directories are created on start if they do not exist. The ownership of the directories is changed to maxscale and the permissions are set to 0755.
189 lines
4.4 KiB
Bash
Executable File
189 lines
4.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 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
|
|
|
|
# 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 maxscale:maxscale @MAXSCALE_VARDIR@/log/maxscale
|
|
chown maxscale:maxscale @MAXSCALE_VARDIR@/lib/maxscale
|
|
chown maxscale:maxscale @MAXSCALE_VARDIR@/cache/maxscale
|
|
chown 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
|
|
|
|
daemon --pidfile $MAXSCALE_PIDFILE @CMAKE_INSTALL_PREFIX@/@MAXSCALE_BINDIR@/maxscale --user=maxscale >& /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
|