Skip to content

Instantly share code, notes, and snippets.

@stevenwilliamson
Created February 4, 2015 12:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevenwilliamson/ee42eb2b37e8d6af9628 to your computer and use it in GitHub Desktop.
Save stevenwilliamson/ee42eb2b37e8d6af9628 to your computer and use it in GitHub Desktop.
#!/bin/bash
. /lib/svc/share/smf_include.sh
# Wrapper to call svcprop to fetch instance properties
getproparg() {
val=$(svcprop -p $1 $SMF_FMRI)
[ -n "$val" ] && echo $val
}
DB_BASE=/opt/local
DB_EXEC=${DB_BASE}/libexec
# Fetch properties configured in the service instance
DB_DATA_PROP=$(getproparg mysql/datadir)
DB_DATA=${DB_DATA_PROP:-/var/mysql}
echo "Setting datadir: ${DB_DATA}"
LOGFILE_PROP=$(getproparg mysql/logfile)
LOGFILE=${LOGFILE_PROP:-/var/log/mysql/error.log}
echo "Setting log-error: ${LOGFILE}"
DEFAULTS_FILE_PROP=$(getproparg mysql/defaults-file)
DEFAULTS_FILE=$DEFAULTS_FILE_PROP
if [[ ! -z "$DEFAULTS_FILE" ]]; then
echo "Setting defaults-file: ${DEFAULTS_FILE}"
MYSQL_DEFAULTS_FILE="--defaults-file=${DEFAULTS_FILE}"
fi
SKIP_SLAVE_START_PROP=$(getproparg mysql/skip-slave-start)
SKIP_SLAVE_START=$SKIP_SLAVE_START
if [[ ! -z "$SKIP_SLAVE_START" ]]; then
echo "Starting with --skip-slave-start"
MYSQL_EXTRA_OPTS="${MYSQL_EXTRA_OPTS} --skip-slave-start"
fi
MYSQL_EXTRA_OPTS_PROP=$(getpropargmysql/mysql-extra-opts)
MYSQL_EXTRA_OPTS="${MYSQL_EXTRA_OPTS} ${MYSQL_EXTRA_OPTS_PROP}"
echo "Setting extra mysql opts: ${MYSQL_EXTRA_OPTS}"
PIDFILE=${DB_DATA}/mysql.pid
ulimit -n 10240
case "$1" in
start)
${DB_EXEC}/mysqld \
$MYSQL_DEFAULTS_FILE \
--user=mysql \
--basedir=${DB_BASE} \
--datadir=${DB_DATA} \
--pid-file=${PIDFILE} \
--log-error=${LOGFILE} \
$MYSQL_EXTRA_OPTS \
> /dev/null &
;;
stop)
if [ -f ${PIDFILE} ]; then
/usr/bin/kill $(cat ${PIDFILE}) > /dev/null 2>&1
fi
;;
'restart')
stop
while ps $(cat ${PIDFILE}) > /dev/null 2>&1
do
sleep 1
done
start
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop | restart }"
echo ""
exit 64
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment