Created
February 4, 2015 12:06
-
-
Save stevenwilliamson/ee42eb2b37e8d6af9628 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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